|
发表于 2006-9-12 12:58:00
|
显示全部楼层
哈哈,刚接触这个都觉得很复杂,其实你先在Org中增加一个menu,然后把这个menu和函数绑定起来,就会执行到你函数了。
我这里有份文档,你可以先参考下:(这个是当初学习的时候的笔记)
文中蓝色部分为加dictionary这个menu是应添加的部分:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5)在PixtelDataTypes.h中添加base ID
#define DICTIONARY_BASE 5990
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
D:\J121\source\plutommi\mmi\inc\PixtelDatas.h
在MMI_features.h 添加 开关 两文件都需要加。
#define (__MMI_DICTIONARY__)
D:\Project\J201-V4.5\plutommi\mmi\Inc
D:\Project\J201-V4.5\plutommi\Customer\CustResource\J121_MMI
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2)在D:\J121\source\plutommi\mmi\Organizer\OrganizerInc\Dictionary.h中定义String Menu ImageID:
#ifndef _MMI_DICTIONARY_H
#define _MMI_DICTIONARY_H
#include "MMI_features.h"
#include "PixtelDataTypes.h"
#if defined(__MMI_DICTIONARY__)
typedef enum
{
SCR_ID_DICTIONARY_APP = DICTIONARY_BASE + 1,
SCR_ID_DIC_RESULT
}SCR_ID_DIC_ENUM;
typedef enum
{
ORGANIZER_DICTIONARY_MENU_STRINGID = DICTIONARY_BASE + 1,
DICTIONARY_QUERY_WARNING
}STR_ID_DIC_ENUM;
typedef enum
{
ORGANIZER_DICTIONARY_MENU_IMAGEID = DICTIONARY_BASE + 1,
IMG_ID_PHB_QUICK_SEARCH_FIND,
DICTIONARY_WELCOME_IMAGEID
}IMG_ID_DIC_ENUM;
#endif
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3)在GlobalMenuItems.h中定义MenuID:
D:\Project\J201-V4.5\plutommi\mmi\Inc
enum GLOBALMENUITEMSID
{
……
ORGANIZER_DICTIONARY_MENU,
…..
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1)在Res_organizer.c的include String ID,ImageID,MenuID:
D:\Project\J201-V4.5\plutommi\Customer\CustResource\J121_MMI\Res_MMI
#if defined(__MMI_DICTIONARY__)
#include "Dictionary.h"
#endif
在Res_organizer.c的void PopulateOrganizerRes(void)中添加:
#if defined(__MMI_DICTIONARY__)
ADD_APPLICATION_IMAGE2(ORGANIZER_DICTIONARY_MENU_IMAGEID, CUST_IMG_PATH"\\\\MainLCD\\\\SubMenu\\\\Organizer\\\\SB_DICT.PBM","Icon for Dictionary Menu.");
ADD_APPLICATION_IMAGE2(DICTIONARY_WELCOME_IMAGEID,CUST_IMG_PATH"\\\\MainLCD\\\\UIElement\\\\Health\\\\H_BMI.bmp","Image for Dictionary Welcome screen.");
#endif
#if defined(__MMI_DICTIONARY__)
ADD_APPLICATION_STRING2(ORGANIZER_DICTIONARY_MENU_STRINGID,"Dictionary","To Go to Dictionary Screen.");
ADD_APPLICATION_STRING2(DICTIONARY_QUERY_WARNING,"Can't find the word in the dictionary!","Show it to the user.");
#if defined(__MMI_DICTIONARY__)
ADD_APPLICATION_MENUITEM((ORGANIZER_DICTIONARY_MENU,MAIN_MENU_ORGANIZER_MENUID,0,
SHOW,MOVEABLEACROSSPARENT,DISP_LIST,
ORGANIZER_DICTIONARY_MENU_STRINGID,ORGANIZER_DICTIONARY_MENU_IMAGEID));
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4)在Res_MainMenu.c中,两个地方需要添加:
D:\Project\J201-V4.5\plutommi\Customer\CustResource\J121_MMI\Res_MMI
typedef enum
{
……
#if defined (__MMI_DICTIONARY__)
ORG_ENUM_DICTIONARY,
#endif
RES_ORG_ENUM_TOTAL //使ResOrganizerMenu总数加一
} ResOrganizerMenu;
void PopulateMainMenuRes(void)
{
……
ADD_APPLICATION_MENUITEM((MAIN_MENU_ORGANIZER_MENUID,IDLE_SCREEN_MENU_ID,RES_ORG_ENUM_TOTAL,
……
ORGANIZER_ALARM_MENU,
#if defined(__MMI_DICTIONARY__)
ORGANIZER_DICTIONARY_MENU, //此处可以决定Menu显示的位置
#endif //dictionary
……
SHOW,MOVEABLEACROSSPARENT,DISP_LIST,
MAIN_MENU_ORGANIZER_TEXT,MAIN_MENU_ORGANIZER_ICON));
……
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
6)在readexcel.c中添加:
#include "Dictionary.h"
因为接下来在产生Resource时readexcel.c会使用到所新增的STRINGID(ORGANIZER_DICTIONARY_MENU_STRINGID)和IMAGEID(ORGANIZER_DICTIONARY_MENU_IMAGEID),
所以也必须在readexcel.c內#include ”dictionary.h”
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
7)Call ResGenerator.bat to make host resource,选择1去卷出资源文件。
Compile ResourceDLL project and PixtelMMI project respectively .即可。
备注:
1. Res_organizer.c,GlobalMenuItems.h,Res_MainMenu.c有位于不同路径下的两份,在添加menu最好是两份都做相同的修改。
2. dictionary.c中为dictionary的实现代码。 |
|