| |
控件應(yīng)用編程舉例
在各種菜單控件中,文本圖標(biāo)列表菜單是比較典型、使用比較廣泛的.我接下來以該控件為例對它的編程過程進行詳細(xì)的講解。
.1 文本圖標(biāo)列表菜單使用的步驟,有以下三步:
1、創(chuàng)建:基本上就是創(chuàng)建一個此控件的結(jié)構(gòu)體對象,一般都是申明一個全局對象,我們很少用動態(tài)對象,一是我們
系統(tǒng)動態(tài)內(nèi)存管理不是很成熟,二是因為我們的屏幕中一般控件數(shù)量比較少,用全局的比較方便。另外要注意一點,我們系統(tǒng)中控件一般都會有一個類如gui_create_control_name()的函數(shù),此函數(shù)不是用來創(chuàng)建控件,而是初始
化控件對象的。
2、設(shè)置:形如gui_create_XXX,gui_set_XXX,gui_resize_XXX 之類的都是控件設(shè)置類接口。
3、顯示:顯示接口一般都類似于gui_show_control_name()。
注意:
菜單是由菜單框架及n 個菜單項組成,所以“文本圖標(biāo)列表菜單”要創(chuàng)建兩種控件:Fixed list menu 及Fixed icontext menuitem。
.2 一步步編寫文本圖標(biāo)列表菜單
第一步創(chuàng)建:
- 創(chuàng)建前的準(zhǔn)備
構(gòu)建一個函數(shù),讓它輸出以下畫面,
如下圖6.38所示:

圖運行效果
函數(shù)代碼如下:
void mmi_myapp_entry(void)
{
S32 x, y, w, h;
color text_color = {255, 255, 0, 100};
EntryNewScreen(SCR_MYAPP_MAIN, mmi_myapp_exit, NULL, NULL);
gui_lock_double_buffer();
entry_full_screen();
clear_screen();
gui_set_text_color(text_color);
gui_set_text_border_color(UI_COLOR_GREEN);
gui_measure_string((UI_string_type)GetString(STR_MYAPP_HELLO), &w, &h);
x = (UI_device_width - w) / 2;
y = MMI_title_y;
gui_move_text_cursor(x, y);
gui_print_bordered_text((UI_string_type)GetString(STR_MYAPP_HELLO));
gui_unlock_double_buffer();
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}
- 構(gòu)建菜單框架
我們先需要創(chuàng)建一個列表菜單框架:
fixed_list_menu My_fixed_list_menu; //列表菜單框架
void mmi_myapp_entry(void)
{
… …
gui_move_text_cursor(x, y);
gui_print_bordered_text((UI_string_type)GetString(STR_MYAPP_HELLO));
//開始顯示菜單
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;
//顯示菜單結(jié)束
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
}
gui_create_fixed_list_menu 用來初始菜單框架的一些基本屬性。MMI_current_menu_type 是一個全局標(biāo)志,用來標(biāo)志當(dāng)前菜單顯示風(fēng)格(雖然有點多此一舉,但代碼中一定要有,否則會顯示不正常)。
菜單框架顯示效果如下圖6.39所示:

菜單框架顯示效果
3、創(chuàng)建菜單項公共屬性
|
|