找回密码
 注册
搜索
查看: 1820|回复: 24

[讨论] 35平台添加菜单

[复制链接]
发表于 2010-2-1 16:14:15 | 显示全部楼层 |阅读模式
在35平台上增加菜单时发现与25平台有些不一样,就是在高亮那部分,不能进入具体的界面,那位高手指导一二?
发表于 2010-2-1 17:29:20 | 显示全部楼层
可能这句话没有写:
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_XXX, mmi_xxx_highlight);
点评回复

使用道具 举报

发表于 2010-2-2 09:42:45 | 显示全部楼层
ADD_APPLICATION_MENUITEM_HILITE_HANDLER
是新版的,跟以前的不一样
点评回复

使用道具 举报

 楼主| 发表于 2010-2-2 17:44:06 | 显示全部楼层
你们说的我都加了,就是没效果,
这个是我加的:ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings);
已有的: ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_COMMON_SETTING, mmi_sms_highlight_common_settings);
我将我要加的函数放到函数mmi_sms_highlight_common_settings下却是可以运行的?这是为何呢?谢谢!
点评回复

使用道具 举报

发表于 2010-2-3 09:21:20 | 显示全部楼层
我将我要加的函数放到函数mmi_sms_highlight_common_settings下却是可以运行的?这是为何呢?谢谢!

因为你没有注册好高亮函数。
我只问3个问题:
1.你确定你的MENU_ID_SMS_AUTOSIGN_GUAN 是正确的吗?看看自动生成的ID数字序列是多少?
2.设置父菜单确定对了吗?
3.注册好你的高亮函数了吗?
点评回复

使用道具 举报

发表于 2010-2-3 16:12:07 | 显示全部楼层
我将我要加的函数放到函数mmi_sms_highlight_common_settings下却是可以运行的?这是为何呢?谢谢!

因为你没有注册好高亮函数。
我只问3个问题:
1.你确定你的MENU_ID_SMS_AUTOSIGN_GUAN 是正确的吗?看看自动生成的ID数字序列是多少?
2.设置父菜单确定对了吗?
3.注册好你的高亮函数了吗?
本文来自:我爱研发网(52RD.com) 详细出处:http://www.52rd.com/bbs/Detail_RD.BBS_179107_5_1_1.html
点评回复

使用道具 举报

 楼主| 发表于 2010-2-4 11:24:37 | 显示全部楼层
以下是引用wongshan在2010-2-3 9:21:20的发言:
我将我要加的函数放到函数mmi_sms_highlight_common_settings下却是可以运行的?这是为何呢?谢谢!

因为你没有注册好高亮函数。
我只问3个问题:
1.你确定你的MENU_ID_SMS_AUTOSIGN_GUAN 是正确的吗?看看自动生成的ID数字序列是多少?
2.设置父菜单确定对了吗?
3.注册好你的高亮函数了吗?



答:
1.MENU_ID_SMS_AUTOSIGN_GUAN 是在  GlobalMenuItems.h文件下定义的,而且定义的位置在MAX_MENU_ITEMS_VALUE前一个位置,如果定义在MENU_ID_DEVAPP_START之前,将会出错,不知道为什么;至于生成的ID数字暂时不是很会看。
2.父菜单设置对了。
3.高亮函数不就是ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings)吗?
谢谢!!!!!
点评回复

使用道具 举报

发表于 2010-2-4 13:52:57 | 显示全部楼层
重新new一下就可以解决,35平台不一样的
点评回复

使用道具 举报

 楼主| 发表于 2010-2-4 14:25:22 | 显示全部楼层
以下是引用jhysler83在2010-2-4 13:52:57的发言:
重新new一下就可以解决,35平台不一样的



我已经NEW过了,还是不行,真难过。
点评回复

使用道具 举报

发表于 2010-2-4 15:49:14 | 显示全部楼层
CustMenuTree_out.c中自动生成ADD_APPLICATION_MENUITEM2 把你的ID和你的父ID关联的吧

mmi_menu_handlers.h应该会在mmi_frm_const_hilite_hdlr_table[] 中自动添加 {MENU_ID_SMS_AUTOSIGN_GUAN,mmi_sms_highlight_autosign_settings},
点评回复

使用道具 举报

 楼主| 发表于 2010-2-4 17:38:38 | 显示全部楼层
以下是引用zyc7722在2010-2-4 15:49:14的发言:
CustMenuTree_out.c中自动生成ADD_APPLICATION_MENUITEM2 把你的ID和你的父ID关联的吧

mmi_menu_handlers.h应该会在mmi_frm_const_hilite_hdlr_table[] 中自动添加 {MENU_ID_SMS_AUTOSIGN_GUAN,mmi_sms_highlight_autosign_settings},



有啊,在CustMenuTree_out.c文件下分别如下:
ADD_APPLICATION_MENUITEM3((MENU_ID_SMS_MSG_SETTINGS, MENU_MTPNP_DM_MSG_SETTINGS, MENU_ID_SMS_PROFILE_SETTING, MENU_ID_SMS_VM_VMAIL_MENUID, MENU_ID_SMS_COMMON_SETTING, MENU_ID_SMS_MEM_STATUS, MENU_ID_SMS_PREFERED_STORAGE, MENU_ID_SMS_AUTOSIGN_GUAN, MENU_ITEM_END, SHOW, MOVEABLEACROSSPARENT, DISP_LIST, STRING_MTPNP_SIM1_MESSAGESETUP_MENUENTRY, IMG_ID_SMS_MSG_SETTINGS_MENUENTRY));

ADD_APPLICATION_MENUITEM2((MENU_MTPNP_MSG_SETTINGS_MENUID, MENU_MTPNP_DM_MSG_SETTINGS, MTPNP_ENUM_TOTAL_MESSAGES_SETUP, MENU_MTPNP_PROFILE_SETTING, MENU_MTPNP_VMAIL, MENU_MTPNP_COMMONSETTING, MENU_MTPNP_MEMSTATUS, MENU_MTPNP_PREFEREDSTORAGE, MENU_ID_SMS_AUTOSIGN_GUAN, SHOW, MOVEABLEACROSSPARENT, DISP_LIST, STRING_MTPNP_MESSAGESETUP_MENUENTRY, IMG_ID_SMS_MSG_SETTINGS_MENUENTRY));

ADD_APPLICATION_MENUITEM2((MENU_ID_SMS_AUTOSIGN_GUAN, MENU_ID_SMS_MSG_SETTINGS, 0, SHOW, MOVEABLEWITHINPARENT, DISP_LIST, STR_SMS_AUTO_SIGNATURE, IMG_SMS_COMMON_NOIMAGE));


在mmi_menu_handlers.h文件下如下:
{MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings},


似乎有问题,但又找不出
点评回复

使用道具 举报

发表于 2010-2-4 18:02:30 | 显示全部楼层
过了这么久? 还没有搞定?
点评回复

使用道具 举报

发表于 2010-2-4 20:18:14 | 显示全部楼层
以下是引用kobedinho在2010-2-4 11:24:37的发言:



答:
1.MENU_ID_SMS_AUTOSIGN_GUAN 是在                GlobalMenuItems.h文件下定义的,而且定义的位置在MAX_MENU_ITEMS_VALUE前一个位置,如果定义在MENU_ID_DEVAPP_START之前,将会出错,不知道为什么;至于生成的ID数字暂时不是很会看。
2.父菜单设置对了。
3.高亮函数不就是ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings)吗?
谢谢!!!!!

这三个对了肯定是正常的。
1.GlobalMenuItems.h 里是有规定新ID是定义是那个值的后面。
2.父菜单确定对了?我就80%判定在这里出问题。
3.注意是注册高亮。RegisterHighlightHandler(ExecuteCurrHiliteHandler);
点评回复

使用道具 举报

发表于 2010-2-4 20:22:01 | 显示全部楼层
最直接的方法,高亮时你看一下ExecuteCurrHiliteHandler里是不是执行你想要的入口函数入口。80%肯定不是想要的。原因在于第2点。看看里面怎么实现,和全局变量交接。我也是刚入MTK,提供建议!
点评回复

使用道具 举报

 楼主| 发表于 2010-2-5 10:11:57 | 显示全部楼层
以下是引用wongshan在2010-2-4 20:18:14的发言:


这三个对了肯定是正常的。
1.GlobalMenuItems.h 里是有规定新ID是定义是那个值的后面。
2.父菜单确定对了?我就80%判定在这里出问题。
3.注意是注册高亮。RegisterHighlightHandler(ExecuteCurrHiliteHandler);


答:
1.ID定义对了。
2.父菜单如下:
    ADD_APPLICATION_MENUITEM2((MENU_ID_SMS_MSG_SETTINGS,
                                #ifndef __MMI_DUAL_SIM_MASTER__
                                    MAIN_MENU_MESSAGES_MENUID,
                                #else
                                    MENU_MTPNP_DM_MSG_SETTINGS,
                                #endif
                                    MENU_ID_SMS_PROFILE_SETTING,
   
                                    MENU_ID_SMS_VM_VMAIL_MENUID,
   
                                    MENU_ID_SMS_COMMON_SETTING,
                                #if defined(__MMI_MESSAGES_PREFER_STORAGE_MEMORY_STATUS__)
                                    MENU_ID_SMS_MEM_STATUS,
                                    MENU_ID_SMS_PREFERED_STORAGE,
                                #endif
                                #if defined(__MMI_GPRS_FEATURES__) && (!defined(__MMI_DUAL_SIM_MASTER__))
                                    MENU_ID_SMS_PREFERED_BEARER,
                                #endif
                                #ifdef __EMS_NON_STD_7BIT_CHAR__
                                    MENU_ID_SMS_7BIT_CHARACTER_SETTING,
                                #endif
                                #ifdef __EMS_DYNAMIC_SEG_NUM__
                                    MENU_ID_SMS_7BIT_CHARACTER_SETTING,
                                #endif
                                        //add by guan 20100128 begin for __SMS_AUTO_SIGN__
                                         MENU_ID_SMS_AUTOSIGN_GUAN,//这个是我加的子ID,其它没变
                                          //add by guan 20100128 end for __SMS_AUTO_SIGN__
                                    MENU_ITEM_END,
                                    SHOW,   MOVEABLEACROSSPARENT,   DISP_LIST,
                                #ifndef __MMI_DUAL_SIM_MASTER__
                                    STR_ID_SMS_MESSAGESETUP_MENUENTRY,
                                #else
                                    STRING_MTPNP_SIM1_MESSAGESETUP_MENUENTRY,
                                #endif
                                    IMG_ID_SMS_MSG_SETTINGS_MENUENTRY));

还有:
    ADD_APPLICATION_MENUITEM((MENU_ID_SMS_AUTOSIGN_GUAN,
                              MENU_ID_SMS_MSG_SETTINGS, 0

                              SHOW, MOVEABLEWITHINPARENT, DISP_LIST,
                              STR_SMS_AUTO_SIGNATURE, IMG_SMS_COMMON_NOIMAGE));


3.高亮的定义在35平台是这样的吧:
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings);
其中mmi_sms_highlight_autosign_settings的具体内容是:
void mmi_sms_highlight_autosign_settings(void)
{

    mmi_sms_highlight_generic(
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        mmi_msg_entry_auto_signature_settings,//此函数是进入具体界面的函数
        GoBackHistory);

}

大概过程就是这样的啦,如果我将函数 mmi_msg_entry_auto_signature_settings放入其它的已经存在高亮函数下,就可以进入,比如:
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_COMMON_SETTING, mmi_sms_highlight_common_settings);
我将函数mmi_msg_entry_auto_signature_settings放到mmi_sms_highlight_common_settings下:
void mmi_sms_highlight_common_settings(void)
{

    mmi_sms_highlight_generic(
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
       mmi_msg_entry_auto_signature_settings,//这样就可以正常进入我要进入的界面
        GoBackHistory);

}
谢谢!!!!!!!!!!!!!
点评回复

使用道具 举报

发表于 2010-2-5 11:22:40 | 显示全部楼层
哈哈,我知道你的问题出在哪里了!

这是因为在MODIS上宏__SMS_AUTO_SIGN__没有开启的原因,怎样看__SMS_AUTO_SIGN__有没有开启:
打开 $(MT6235)\modis\mmi_app\mmi_app.ini 看看,在这个文件里查一下__SMS_AUTO_SIGN__

楼主验证一下
点评回复

使用道具 举报

发表于 2010-2-5 12:10:34 | 显示全部楼层
以下是引用kobedinho在2010-2-5 10:11:57的发言:
;

答:
1.ID定义对了。
2.父菜单如下:
                                ADD_APPLICATION_MENUITEM2((MENU_ID_SMS_MSG_SETTINGS,
                                                                                                                                                                                                                                                                #ifndef __MMI_DUAL_SIM_MASTER__
                                                                                                                                                                                                                                                                                                MAIN_MENU_MESSAGES_MENUID,
                                                                                                                                                                                                                                                                #else
                                                                                                                                                                                                                                                                                                MENU_MTPNP_DM_MSG_SETTINGS,
                                                                                                                                                                                                                                                                #endif
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_PROFILE_SETTING,
                               
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_VM_VMAIL_MENUID,
                               
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_COMMON_SETTING,
                                                                                                                                                                                                                                                                #if defined(__MMI_MESSAGES_PREFER_STORAGE_MEMORY_STATUS__)
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_MEM_STATUS,
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_PREFERED_STORAGE,
                                                                                                                                                                                                                                                                #endif
                                                                                                                                                                                                                                                                #if defined(__MMI_GPRS_FEATURES__) && (!defined(__MMI_DUAL_SIM_MASTER__))
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_PREFERED_BEARER,
                                                                                                                                                                                                                                                                #endif
                                                                                                                                                                                                                                                                #ifdef __EMS_NON_STD_7BIT_CHAR__
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_7BIT_CHARACTER_SETTING,
                                                                                                                                                                                                                                                                #endif
                                                                                                                                                                                                                                                                #ifdef __EMS_DYNAMIC_SEG_NUM__
                                                                                                                                                                                                                                                                                                MENU_ID_SMS_7BIT_CHARACTER_SETTING,
                                                                                                                                                                                                                                                                #endif
                                        //add by guan 20100128 begin for __SMS_AUTO_SIGN__
                                         MENU_ID_SMS_AUTOSIGN_GUAN,//这个是我加的子ID,其它没变
                                                        //add by guan 20100128 end for __SMS_AUTO_SIGN__
                                                                                                                                                                                                                                                                                                MENU_ITEM_END,
                                                                                                                                                                                                                                                                                                SHOW,                 MOVEABLEACROSSPARENT,                 DISP_LIST,
                                                                                                                                                                                                                                                                #ifndef __MMI_DUAL_SIM_MASTER__
                                                                                                                                                                                                                                                                                                STR_ID_SMS_MESSAGESETUP_MENUENTRY,
                                                                                                                                                                                                                                                                #else
                                                                                                                                                                                                                                                                                                STRING_MTPNP_SIM1_MESSAGESETUP_MENUENTRY,
                                                                                                                                                                                                                                                                #endif
                                                                                                                                                                                                                                                                                                IMG_ID_SMS_MSG_SETTINGS_MENUENTRY));

还有:
                                ADD_APPLICATION_MENUITEM((MENU_ID_SMS_AUTOSIGN_GUAN,
                                                                                                                                                                                                                                                MENU_ID_SMS_MSG_SETTINGS, 0

                                                                                                                                                                                                                                                SHOW, MOVEABLEWITHINPARENT, DISP_LIST,
                                                                                                                                                                                                                                                STR_SMS_AUTO_SIGNATURE, IMG_SMS_COMMON_NOIMAGE));


3.高亮的定义在35平台是这样的吧:
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_AUTOSIGN_GUAN, mmi_sms_highlight_autosign_settings);
其中mmi_sms_highlight_autosign_settings的具体内容是:
void mmi_sms_highlight_autosign_settings(void)
{

                                mmi_sms_highlight_generic(
                                                                STR_GLOBAL_OK,
                                                                IMG_GLOBAL_OK,
                                                                STR_GLOBAL_BACK,
                                                                IMG_GLOBAL_BACK,
                                                                mmi_msg_entry_auto_signature_settings,//此函数是进入具体界面的函数
                                                                GoBackHistory);

}

大概过程就是这样的啦,如果我将函数 mmi_msg_entry_auto_signature_settings放入其它的已经存在高亮函数下,就可以进入,比如:
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_SMS_COMMON_SETTING, mmi_sms_highlight_common_settings);
我将函数mmi_msg_entry_auto_signature_settings放到mmi_sms_highlight_common_settings下:
void mmi_sms_highlight_common_settings(void)
{

                                mmi_sms_highlight_generic(
                                                                STR_GLOBAL_OK,
                                                                IMG_GLOBAL_OK,
                                                                STR_GLOBAL_BACK,
                                                                IMG_GLOBAL_BACK,
                                                 mmi_msg_entry_auto_signature_settings,//这样就可以正常进入我要进入的界面
                                                                GoBackHistory);

}
谢谢!!!!!!!!!!!!!


直接修改 mmi_sms_highlight_autosign_settings 函数

在 mmi_sms_highlight_autosign_settings 里面注册 lsk 和rsk的 入口就可以了
点评回复

使用道具 举报

 楼主| 发表于 2010-2-5 17:36:06 | 显示全部楼层
以下是引用badguy在2010-2-5 11:22:40的发言:
哈哈,我知道你的问题出在哪里了!

这是因为在MODIS上宏__SMS_AUTO_SIGN__没有开启的原因,怎样看__SMS_AUTO_SIGN__有没有开启:
打开 $(MT6235)\modis\mmi_app\mmi_app.ini 看看,在这个文件里查一下__SMS_AUTO_SIGN__

楼主验证一下


可是__SMS_AUTO_SIGN__不是一个宏啊,我只是模仿宏的样子来标记我曾经在什么地方修改过什么?方便我自己查找而已,所有的__SMS_AUTO_SIGN__前都有//屏蔽的,不过还是谢谢你的回答。
点评回复

使用道具 举报

 楼主| 发表于 2010-2-5 17:42:41 | 显示全部楼层
以下是引用BrayL在2010-2-5 12:10:34的发言:


直接修改 mmi_sms_highlight_autosign_settings 函数

在 mmi_sms_highlight_autosign_settings 里面注册 lsk 和rsk的 入口就可以了

我修改成这样:
void mmi_sms_highlight_autosign_settings(void)
{
/*
    mmi_sms_highlight_generic(
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        mmi_msg_entry_auto_signature_settings,//mmi_sms_get_sms_autosign_list_req,//mmi_msg_entry_auto_signature_settings,
        GoBackHistory);
*/
    ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);

   
    ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);


    SetLeftSoftkeyFunction(mmi_msg_entry_auto_signature_settings, KEY_EVENT_UP);
    SetKeyHandler(mmi_msg_entry_auto_signature_settings, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);


    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
   
}
可是依然不行。谢谢!!
点评回复

使用道具 举报

发表于 2010-2-7 08:42:53 | 显示全部楼层
ADD_APPLICATION_XXXXX(.....)是资源添加,注意!
添加父菜单请看SetParentHandler(.....),
另外高亮和执行入口要搞清楚。
void mmi_sms_highlight_common_settings(void)
{

    mmi_sms_highlight_generic(
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
       mmi_msg_entry_auto_signature_settings,//这样就可以正常进入我要进入的界面
        GoBackHistory);

}
这种写法我只看到你一个人这样写啊。如果你把mmi_sms_highlight_generic放在这里,按照你的意思应该是一选中就会进入这个界面。。。可杯是这样也不行。很多数据结构还没有初始化,明显是进不了的。, ADD_APPLICATION_XXXXX(.....)是资源添加,注意!
添加父菜单请看SetParentHandler(.....),
另外高亮和执行入口要搞清楚。
void mmi_sms_highlight_common_settings(void)
{

    mmi_sms_highlight_generic(
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
       mmi_msg_entry_auto_signature_settings,//这样就可以正常进入我要进入的界面
        GoBackHistory);

}
这种写法我只看到你一个人这样写啊。如果你把mmi_sms_highlight_generic放在这里,按照你的意思应该是一选中就会进入这个界面。。。可杯是这样也不行。很多数据结构还没有初始化,明显是进不了的。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-9 01:44 , Processed in 0.065627 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表