关闭

如何在smartphone中定义MenuBar的结构

820人阅读 评论(0) 收藏 举报

 要在SP中使用SHCreateMenuBar来创建一个MenuBar,需要以下条件:

1)定义好Resource文件中的RC和RC2中的资源。

    YourAppName.rc:

-------------------------------------------------------------

     IDR_MENU2 MENU (这个Menu定义是未来显示右键弹出菜单的,IDR_MENU2为Resrouce_ID,在YouAppName.rc2 中会用到)
BEGIN
    POPUP "MenuRoot"  (subMenuIndex:0)
    BEGIN
        MENUITEM "MenuOne",                     ID_MENUROOT_MENUONE
        MENUITEM "MenuTwo",                     ID_MENUROOT_MENUTWO
        POPUP "MenuThrid"
        BEGIN
            MENUITEM "CAMENU1",                     ID_MENUTHRID_CAMENU1
            MENUITEM "CAMENU2",                     ID_MENUTHRID_CAMENU2
        END
    END
    POPUP "SecMenu" POPUP "MenuRoot"  (subMenuIndex:1)
    BEGIN
        MENUITEM "SEC_!",                       ID_SECMENU_SEC
        MENUITEM "SEX-2",                       ID_SECMENU_SEX
    END
END

--------------------------------------------------------------------------

YourAppName.rc2 中定义了SHMenuBar 的资源结构


IDR_MAINFRAME SHMENUBAR DISCARDABLE( IDR_MAINFRAME是SHCreateMemnuBar 中用到的结构SHMENUBARINFO要使用的RESOURCE ID,SHMENUBAR是资源类型,一定不能错。)
BEGIN
    IDR_MENU2, ( 这个是在RC文件中定义的要弹出的菜单Resourc ID)
    2,(显示一个按钮还是两个按钮)
   
    I_IMAGENONE, IDOK(这个是在程序中用到的ID来区分按了那个软键), TBSTATE_ENABLED(启用), TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE,
    IDS_OK(软键显示的字符串,这个跟Popup无关), 0, NOMENU(没有弹出菜单),
    I_IMAGENONE(SP中一定是这个值), IDM_RSKBUTTON, TBSTATE_ENABLED, TBSTYLE_DROPDOWN  | TBSTYLE_AUTOSIZE(有弹出菜单的话,一定是TBSTYLE_DROPDOWN),
    IDS_OK, 0, 1(这里是0还是1.或者2,n之类的书最重要,因为他决定着那个Popup对应的menu会显示出来。),
END
--------------------------------------------------


其实,在资源文件中,有RC和rc2区别,按照MSDN的说法,RC2只是为了方便定义一些少用的数据而来的,如果你想显示菜单,就必须对这两种文件的定义格式要很清楚。

比如,想显示2个按钮,和一个右键菜单。
注意: 一定不要以为右键菜单的顶头项(就是Popup项)就是右边的按钮。


IDR_MAINFRAME 是在创建SHMENUBAR时SHMENUBARINFO用到的ID
IDR_MENU2是弹出的菜单的ID(这个是要在资源文件中定义得)
IDM_LEFT是左键的BUTTON(这个ID,是在程序中捕捉得用户选择后的反应ID,就是用他来识别用户选择的)
IDM_RIGHT是右键的button(这个是最关键的,我一直搞混淆了,以为在rc资源编辑器里,设置了那个最顶的那个项这里就会自动的弹出菜单,这个也是一个UINT类型的值,而且,如果要弹出来,菜单的属性要设置对。)
TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE就是能弹出菜单的选项。


 

 

 

 

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31778次
    • 积分:563
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:1篇
    • 译文:0篇
    • 评论:9条
    最新评论