关于MTK平台列表控件的使用

在MTK平台下使用列表控件,上网找找资料,看了一下傅贵写的《MMI实例培训教程》的书,修改一下代码,如下:

代码
fixed_list_menu My_fixed_list_menu; //列表菜单框架
fixed_icontext_menuitem My_fixed_icontext_menuitem_common; //菜单项公共属性

#define My_fixed_list_n_items (8) //菜单项项数
fixed_icontext_menuitem_type My_fixed_list_menuitems[My_fixed_list_n_items];
//icontext 型菜单项列表
void *My_fixed_menuitem_pointers[My_fixed_list_n_items]; //指向菜单项列表的索引列表

void Test_List_Ctrl(void)
{
S32 i;

EntryNewScreen(SCR_ID_GOOME_GPS_FOOTPRINT_SET_TARGET,NULL,NULL,NULL);

//开始显示菜单
memset(&My_fixed_list_menu, 0, sizeof(fixed_list_menu));
gui_create_fixed_list_menu(
&My_fixed_list_menu, 20, MMI_content_y + 5, 136, MMI_content_height - 50);
MMI_current_menu_type
= LIST_MENU;

memset(
&My_fixed_icontext_menuitem_common, 0, sizeof(fixed_icontext_menuitem));
gui_create_fixed_icontext_menuitem(
&My_fixed_icontext_menuitem_common, 136, 18); //宽高
gui_fixed_icontext_menuitem_set_text_position( &My_fixed_icontext_menuitem_common, 24, 0); //文本偏移距离
My_fixed_icontext_menuitem_common.flags |= UI_MENUITEM_DISABLE_BACKGROUND; //统一标志符

memset(
&My_fixed_list_menuitems, 0, sizeof(fixed_icontext_menuitem_type) * My_fixed_list_n_items);
for (i = 0; i < My_fixed_list_n_items; i++)
{
My_fixed_list_menuitems[i].item_text
= (UI_string_type)GetString(STR_ID_GOOME_GPS_FOOTPRINT); //菜单项文本
My_fixed_list_menuitems[i].item_icon = (PU8) GetImage(IMG_GLOBAL_L1 + i); //菜单项图标
My_fixed_list_menuitems[i].flags = (UI_MENUITEM_CENTER_TEXT_Y | UI_MENUITEM_CENTER_ICON_Y);
My_fixed_list_menuitems[i].item_icon_handle
= GDI_ERROR_HANDLE;
My_fixed_menuitem_pointers[i]
= (void*)&My_fixed_list_menuitems[i]; //给索引列表赋值
}

My_fixed_list_menu.items
= My_fixed_menuitem_pointers; // 菜单项索引列表
My_fixed_list_menu.common_item_data = (void*)&My_fixed_icontext_menuitem_common; // 菜单项公共属性
My_fixed_list_menu.n_items = My_fixed_list_n_items; // 菜单项项数
gui_set_fixed_list_menu_item_functions(&My_fixed_list_menu, // 菜单项功能接口
gui_show_fixed_icontext_menuitem, //显示菜单项函数
gui_measure_fixed_icontext_menuitem, //测量菜单项函数
gui_highlight_fixed_icontext_menuitem, //高亮函数
gui_remove_highlight_fixed_icontext_menuitem, //失去高亮函数
gui_hide_fixed_icontext_menuitem, //菜单项隐藏函数
NULL
);

My_fixed_list_menu.highlighted_item
= -1; //菜单高亮项索引,此为菜单框架内部属性值,在跳转之前一定要设为-1
gui_fixed_list_menu_goto_item(&My_fixed_list_menu, 0);
gui_show_fixed_list_menu(
&My_fixed_list_menu);

//显示菜单结束
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);


}

 

加入后开始编译,当然会出现一些其它的错误,慢慢调,后来有一个错误是说 
gui_set_fixed_list_menu_item_functions
下wrong number parament 的,再次与书中的例子比较一下,没有错,在工程中搜索该函数,发现是8个参数的,二话不说,增加resize_fixed_icontext_menuitems在gui_set_fixed_list_menu_item_functions增加刚增加的函数名,另外将NULL改为gui_get_fixed_icontext_menuitem_flag。
再次编译,说找不到resize_fixed_icontext_menuitems函数,再次添加头文件
#include "wgui_fixed_menuitems.h"
编译,无错误,在真机上调试成功。

posted @ 2010-09-23 22:33  Eric_Su  阅读(663)  评论(0编辑  收藏  举报