找回密码
 注册
搜索
查看: 473|回复: 3

#define ADD_EXT(_M_) ADD(ID_##_M_##_ENUM, HINT_##_M_##_CALLBACK)

[复制链接]
发表于 2009-6-17 11:05:22 | 显示全部楼层 |阅读模式
[ OLD METHOD ]
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MAIN_MENU_PROFILES_MENUID, highlight_mainmenu_profiles);
ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MAIN_MENU_PHONEBOOK_MENUID, highlight_mainmenu_phonebook);

[ NEW METHOD ]
ADD_APPLICATION_MENUITEM_HILITE_HANDLER_EXT(PROFILES);
ADD_APPLICATION_MENUITEM_HILITE_HANDLER_EXT(PHONEBOOK);

=================================================
#define ADD_APPLICATION_MENUITEM_HILITE_HANDLER_EXT(_M_)               ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MAIN_MENU_##_M_##_MENUID, highlight_mainmenu_##_M_);
 楼主| 发表于 2009-6-17 11:11:07 | 显示全部楼层
#include <assert.h>

typedef void (*MENUHANDLER)(void);

#define MAX_MENU_COUNT 10

MENUHANDLER p[MAX_MENU_COUNT];

#define ADD_MENUITEM_HANDLER(D,F)         assert(##D < 10);                     p[##D] = ##F;

#define ADD_HANDLER(_M_)         ADD_MENUITEM_HANDLER(MAIN_MENU_##_M_##_MENUID, highlight_mainmenu_##_M_);

enum
{
        MAIN_MENU_AUDIO_PLAYER_MENUID = 9,
        MAIN_MENU_CAMERA_MENUID,
        MAIN_MENU_MAX_MENUID
};

void highlight_mainmenu_AUDIO_PLAYER(void)
{
}

void highlight_mainmenu_CAMERA(void)
{
}

int main(int argc, char* argv[])
{
        MENUHANDLER f;

        ADD_HANDLER(CAMERA);

        f = p[MAIN_MENU_CAMERA_MENUID];

        return 0;
}
点评回复

使用道具 举报

 楼主| 发表于 2009-6-17 11:12:30 | 显示全部楼层
BBS系统对信息提交格式解析出错!
点评回复

使用道具 举报

发表于 2009-6-21 10:03:30 | 显示全部楼层
mtk做的最差的就是这个,死的!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-10-7 03:28 , Processed in 0.055179 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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