动态菜单 动态地决定某个菜单项的显示与否(From Forum Nokia Wiki)
2008-02-20 15:59
288 查看
在S60平台上处理菜单项的显示与隐藏是十分容易的事情,我们只需要在应用程序的APPUI层继承DynInitMenuPaneL函数,在这个函数中处理菜单项的现实即可。下面的代码演示了如何在实现DynInitMenuPaneL()这个函数:
void CMyAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
请注意,当你修改菜单窗口的时候,我们需要确认需要修改的菜单的确是当前显示的菜单窗口;进行此项确认,仅仅需要检查函数参数的资源ID和我们需要修改的菜单的资源ID是否一致即可。另外还要注意MENU_PANE的资源ID和MENU_BAR的资源ID并不是一致的,这点要特别注意。
这个DynInitMenuPaneL函数是在菜单窗口被显示之前被调用的,所以调用SetItemDimmed()函数,将某项菜单的隐藏值设置为ETrue的话就可以将某一个菜单项从菜单列表中隐藏起来,这样的话用户就等于无法使用该菜单项了。
如果你想在菜单列表中添加某一个菜单项,你可以在DynInitMenuPaneL函数中,创建一个CEikMenuPane类的对象,然后如下例所示,将这个菜单项添加到菜单列表中。
菜单项和菜单窗口的资源文件定义如下:
RESOURCE MENU_BAR r_main_menubar RESOURCE MENU_PANE r_main_menu RESOURCE MENU_PANE r_add_menu 动态地更换整个选项菜单
如果你希望更换整个左软键的选项菜单中的内容,你可以在代码中使用下面的函数:
iEikonEnv->AppUiFactory()->MenuBar()->SetMenuTitleResourceId(R_ADD_MENU);
但是请注意,使用这个函数的时候,一定不要在DynInitMenuPaneL()函数中进行钓用,否则将会导致十分奇怪的后果 ;P 。
相关文章推荐
- 设计组织树 通过java拼接xml组织树 实现界面组织树 通过数据库配置动态决定菜单树显示与否、排列优先
- 动态地决定某个菜单项的显示与否
- Drawing skins in container From Forum Nokia Wiki
- SwipeLayout 如何按照权限要求隐藏菜单项(按菜单显示比例动态设置rightViewWidth)
- Constructing HTTP POST Url parameters(From Forum Nokia Wiki)
- Qt Symbian 开发环境安装From Forum Nokia Wiki
- 实战android菜单项之XML加载菜单与动态菜单项
- 解读M$源代码:JavaScript+CSS实现动态菜单显示
- MFC中动态添加菜单项和响应菜单事件
- [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 动态创建button并显示菜单
- Delphi 菜单的应用(系统菜单添加一项、主菜单增加历史记录、弹出菜单的动态合并、菜单中画图、显示状态)
- 如何在MFC中动态添加菜单/菜单项、子菜单、右键菜单
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- ArcEngine java 如何创建自定义菜单、环境菜单、调色板以及动态菜单项
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- 借用鼠标指定的对象实现动态显示和隐藏菜单