Symbian 下菜单的应用开发技巧
2010-03-13 20:25:00 来源:WEB开发网Avkon 菜单项是从menu bar和RSS文件中指定的menu pane resources生成的。我们可以通过windows下模拟器按F1来启动或通过 options自定义功能键来启动,这是要使用EAKnSoftkeyOptions Id来实现的。如果应用程序要切换到pre- existing'options应该使用R_AVKON_SOFTKEYS_OPTIONS_BACK这个CBA资源。
每个菜单的选项都是在MENU_PANE资源结构中定义的,使用在system、application、view和context。
譬如下列菜单资源:
RESOURCE MENU_PANE r_system_menu
{
items =
{
MENU_ITEM {command = ECmdCut; txt = "Cut";},
MENU_ITEM {command = ECmdCopy; txt = "Copy";},
MENU_ITEM {command = ECmdPaste; txt = "Paste";},
};
}
子菜单和有由'cascade'参数指定,下面是一个列子
MENU_ITEM {command = ESystemOptions; txt = "System Options";
cascade = r_system_options_menu;}
顾名思义,这个就指定是了上面r_system_options_menu的子菜单。
COMBINING MENU SECTIONS
菜单sections由MENU_BAR资源来整合。按照从下到上的顺序。
一个典型的列子是
RESOURCE MENU_BAR r_menuapp_menu
{
titles =
{
MENU_TITLE { txt = "System"; menu_pane = r_system_menu;},
MENU_TITLE { txt = "App"; menu_pane = r_app_menu;},
MENU_TITLE { txt = "View"; menu_pane =
r_view1_options_menu;},
MENU_TITLE { txt = "Context"; menu_pane = r_context1_menu;},
};
}
这样就把所有的应用程序菜单列出来了。
注意txt选项只是为了识别用的,根本不显示。但还是要寸在资源文件中。
缺省的菜单栏使用EIK_APP_INFO资源,当启动时载入。如果使用的是view体系结构,那可以在viewname>资源结构中设置菜单。
CHANGING MENU SECTIONS
在程序运行过程中我们可以随意改变菜单项目,只需要调用:
iEikonEnv->AppUiFactory()->MenuBar()->SetMenuTitleResourceId(MENU_BAR_RESOURCE_ID)
每次需要改变内容时就这么做,所以你要事先把所有可能用到的菜单资源都准备好:
更多精彩
赞助商链接