当前位置:文档之家› 展讯学习笔记

展讯学习笔记

函数1.设置字体颜色#if defined(UI_WATCH_STYLE_128X128BAR)GUIEDIT_SetFontColor(MMISET_SET_DIVERT_NUMBER_CTRL_ID,MMI_BLACK_COLOR);#endif2.显示输入法#if defined(UI_WATCH_STYLE_128X128BAR)GUIEDIT_SetDispImIcon(MMIBT_PIN_EDITBOX_CTRL_ID,&is_display_im,&is_display_num); #endif3.idleHandleIdleMsg(idle入口函数)IdleWin_HandleMsg(idle按键注册)4. MMK_RunWinProc(窗口跟踪函数) MMK_RunCtrlProc(控件跟踪函数)5. MMITHEME_GetMenuProc 菜单回调函数6. MMITHEME_GetCommonMenuTheme设置菜单tiemer7. MMITHEME_GetSecondMenuTheme设置二级菜单的风格数据8.6. MMK_DispatchToHandle mmk消息分配函数7. MMITHEME_GetMenuProc设置各种style风格的控件的回调函数GUIMENU_PROCESS_T结构typedef struct{void (*InitMenu)(GUIMENU_CTRL_T*); //init menuvoid (*DestoryMenu)(GUIMENU_CTRL_T*); //destory menuvoid (*DisplayMenu)(GUIMENU_CTRL_T*); //display menu(必须实现)void (*DisplaySpecialMenu)(GUIMENU_CTRL_T*); //display menu(处理主菜单震动拖选效果)void (*ShowScrollItemStr)(GUIMENU_CTRL_T*); //display scroll item stringMMI_RESULT_E (*HandleMenuUpKey)(GUIMENU_CTRL_T*); //handle menu up key(必须实现)MMI_RESULT_E (*HandleMenuDownKey)(GUIMENU_CTRL_T*); //handle menu down key(必须实现)BOOLEAN (*HandleMenuLeftKey)(GUIMENU_CTRL_T*,MMI_MESSAGE_ID_E); //handle menu left key,return is handle cancel(返回是否需要处理)BOOLEAN (*HandleMenuRightKey)(GUIMENU_CTRL_T*,MMI_MESSAGE_ID_E); //handle menu right key,return is handle ok(返回是否需要处理)BOOLEAN (*HandleMenuNumKey)(uint16,GUIMENU_CTRL_T*); //handle menu number key(返回是否需要处理)void (*HandleMenuTpDown)(GUI_POINT_T*,GUIMENU_CTRL_T*); //handle menu tp down(必须实现)BOOLEAN (*HandleMenuTpUp)(GUI_POINT_T*,GUIMENU_CTRL_T*);//handle menu tp up(必须实现)(返回是否需要处理)void (*HandleMenuTpMove)(GUI_POINT_T*,GUIMENU_CTRL_T*); //handle menu tp move(必须实现)void (*HandleMenuTpScroll)(uint16,GUIMENU_CTRL_T*); //handle menu scroll bar tpvoid (*AdjustFirstAndDisplay)(GUIMENU_CTRL_T*, BOOLEAN); //调整first_item_index索引并重新显示(非主菜单,实现)uint16 (*GetCurItemTop)(GUIMENU_CTRL_T*); //获得当前Item的Top值(POP风格弹出二级时,实现)BOOLEAN (*MoveInit)(GUIMENU_CTRL_T*); //移动信息初始化BOOLEAN (*MoveDestory)(GUIMENU_CTRL_T*); //移动信息销毁BOOLEAN (*HandleMenuOk)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E); //handle menu ok(返回mmimenu是否已经处理)MMI_RESULT_E (*HandleMenuTimer)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E, DPARAM); //handle menu timerBOOLEAN (*HandleMenuCancelKey)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E); //handle menu cancel(返回mmimenu是否已经处理)BOOLEAN (*HandleMenuEndKey)(GUIMENU_CTRL_T*); //handle menu endBOOLEAN (*SearchMenuId)(GUIMENU_CTRL_T*, MMI_MENU_ID_T); // 判断指定的item id是否存在(已无用,可删)void (*HandleMenuModifyRect)(GUIMENU_CTRL_T*); //handle menu modify rect(必须实现)MMI_RESULT_E (*HandleSpecialMsg)(GUIMENU_CTRL_T*, MMI_MESSAGE_ID_E, DPARAM); //display menuvoid (*GetItemPtr)(GUIMENU_CTRL_T*, uint16, uint16, GUIMENU_MAINMENU_INFO_T* ); // 获取指定页指定索引的静态item内容信息(用于主菜单)GUIMENULIST_ITEM_INFO_T* (*GetItemInfoPtr)(GUIMENU_CTRL_T*, uint16, uint16);// 获取指定页指定索引的静态item信息(用于主菜单)uint16 (*GetTotalItemNum)(GUIMENU_CTRL_T*, uint16); // 获取指定页的总item数(用于分页型的风格)uint16 (*GetLineNumPage)(GUIMENU_CTRL_T *); // 获取一个有多少行(非主菜单实现)BOOLEAN (*ResetDisplayItem)(GUIMENU_CTRL_T *, int16*, BOOLEAN); // 修正显示位置,获取相对于现在的偏移量void (*CalculateRect)(GUIMENU_CTRL_T *, uint16); // 计算menu的区域BOOLEAN (*U_SetPageInfo)(GUIMENU_CTRL_T *, uint16, void *); // 设置U动画信息} GUIMENU_PROCESS_T;窗口风格Guimenu控件把一种风格对应的消息处理函数封装成一个结构,开放给应用使用。

该结构只封装了消息处理的接口,以下每一个函数都对应了某个消息的处理,通常一种风格对应的是一组这样的消息处理函数。

@codeMENU_DEF( MENU_MAINMENU_ICON, menu_mainmenu_icon, GUIMENU_STYLE_ICON, TXT_NULL, IMAGE_NULL, IMAGE_NULL, IMAGE_NULL, GUIMENU_ITEM_NUM(menu_mainmenu_icon))@endcodeMENU_DEF宏的参数从前往后依次为:- 菜单组ID- 菜单数组地址- 菜单类型(可以看到为GUIMENU_STYLE_ICON,)- 四个空的文本或图片(NULL表示不需要)- 菜单数组的项数如果修改位置信息,那么只需要修改mmitheme_menu.h文件中的宏定义即可,有横竖屏的,应该兼顾。

如果修改选项数据信息,只需要修改菜单的静态数组,例如menu_mainmenu_icon。

弹出式菜单和其它菜单不同,在创建的时候,弹出式菜单不需要使用CREATE_MENU_CTRL宏,也不需要依赖于窗口Table,无论是动态创建还是静态创建都是通过接口来实现的。

-# MMIPOPMENU_CreateStatic 静态创建弹出式菜单-# MMIPOPMENU_CreateDynamic 动态创建弹出式菜单弹出试菜单的风格如下:-# 菜单显示的最大项数,该值使用一个宏定义的常量,常量名称MMIMENU_POPUP_LINE_NUM_PAGE,定义在mmimenu_position.h文件中,目前我们对于240x320以及176x220的屏幕,弹出式菜单的最大显示项数为8,而240x400的最大显示数为10。

-# 菜单的背景修改,弹出式菜单的背景分为上下两个部分,上半部分为半透的效果,使用图片IMAGE_PUBWIN_UP_BG,这是一张固定资源图片,图片的大小可以自行修改。

窗口的下半部分为背景色,颜色值为MMITHEME_POPUPMENU_BG_COLOR,在创建菜单控件的时候,调用MMITHEME_GetPopupMenuTheme(mmitheme_menu.c实现)获取。

-# 菜单的其他风格信息都可以在MMITHEME_GetPopupMenuTheme接口中修改。

菜单控件分为两大类:- 静态菜单\n静态菜单的数据事先通过菜单表的形式已经确定,菜单控件分析这张菜单表解析出菜单项,用户不能够再动态添加和删除菜单项。

\ntypedef void*PWND;/*!< window struct pointer type */ typedef void*DPARAM;/*!< param data pointer type */ typedef void*ADD_DATA;/*!< additional data pointer type */ typedef uint16MMI_SOFT_ICON;/*!< soft icon type */typedef uint32MMI_TEXT_ID_T;/*!< text id type */typedef uint32MMI_IMAGE_ID_T;/*!< image id type */typedef uint32MMI_ANIM_ID_T;/*!< animation id type */typedef uint32MMI_RING_ID_T;/*!< ring id type */typedef uint32MMI_COLOR_ID_T;/*!< color id type */typedef uint32MMI_RECT_ID_T;/*!< rect id type */typedef uint32MMI_DATA_ID_T;/*!< data id type */typedef uint32MMI_MENU_GROUP_ID_T;/*!< menu group id type */ typedef uint32MMI_MENU_ID_T;/*!< menu id type */typedef uint16MMI_MENU_TIP_T;/*!< menu tip type */typedef uint32MMI_MESSAGE_ID_E;/*!< message id type */typedef uint32MMI_WIN_ID_T;/*!< window id type */typedef uint32MMI_CTRL_ID_T;/*!< control id type */typedef uint32MMI_NV_ID_T;/*!< nv id type */typedef uint32MMI_HANDLE_T;/*!< handle type */typedef uint32 MMI_RESULT_E;现在\link #GUIMENU_STYLE_ICON \endlink、\link #GUIMENU_STYLE_OPTION_PAGE \endlink、\link #GUIMENU_STYLE_TITLE_ICON \endlink、\link #GUIMENU_STYLE_SLIDE_PAGE \endlink、\link #GUIMENU_STYLE_CUBE \endlink必须是静态菜单。

相关主题