`
haofeng82
  • 浏览: 144450 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Symbian:向视图上增加菜单项

阅读更多

目前只会通过配置文件的方式。具体方式如下:
菜单项的增加一般有三个步骤:编写菜单项配置文件、编写视图配置文件,并使两者关联、编写事件处理程序。
1 编写菜单项配置文件:
在rss文件中可以如下定义:
RESOURCE MENU_BAR r_test_menubar
{
titles =
{
MENU_TITLE { menu_pane = r_test_menu; txt = ""; }
};
}
RESOURCE MENU_PANE r_test_menu
{
items =
{
MENU_ITEM { command = queryMuenuItem; txt = "query"; },
MENU_ITEM { command = 2; txt = "2"; },
MENU_ITEM { command = 3; txt = "3"; }//,
};
}
一个菜单是由两部分组成的:菜单条和菜单面板
没什么好解释的,需要注意的是MENU_ITEMcommand可以从别的配置项中读取,例如:
enum
{
queryMuenuItem = 8
};
Txt部分是菜单项的标签。
2编写视图配置文件
先看一下写法:
RESOURCE AVKON_VIEW r_controls_view1
{
menubar = r_test_menubar;
cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
}
首先我们需要考虑的是,这个配置文件属于那一个视图?
这是通过r_controls_view1,即视图的名字关联起来的。
我们在视图类的构造函数中可以这样写:
void CSimpleControlView::ConstructL()
{
BaseConstructL(R_CONTROLS_VIEW1);
}
这样,就使两者关联到一起了。
视图是通过menubar这个项进行关联的,但是需要注意的是,如果cba的值中不包括“OPTIONS”字符串的话,菜单是不会显示出来的。
3 编写事件处理函数
我们接下来要做的就是编写事件处理函数了
具体捕获的是那个按钮,是通过菜单项的command项的值进行判断的,示例代码如下:
void CSimpleControlView::HandleCommandL(TInt aCommand)
{
switch (aCommand)
{
casequeryMuenuItem:
{ AppUi()->ActivateLocalViewL(TUid::Uid(ECompoundControlViewId));
}
break;
}
default:
{
AppUi()->HandleCommandL(aCommand);
}
}
}
请看代码中红色的部分,这个值和MENU_ITEM { command = queryMuenuItem; txt = "query"; },的值是一致的。这样我们就可以在这个部分编写自己的事件处理程序了。
分享到:
评论

相关推荐

    Symbian动态更改菜单例子源代码

    其次,`CEikButtonGroupContainer`是Symbian UI框架中的一个组件,用于管理屏幕上的按钮组,包括菜单项。这个容器可以容纳多个按钮(即菜单项),并且提供了处理按钮事件的方法。在动态菜单的例子中,我们需要用到`...

    Symbian UI 设计基础

    - **HandleCommandL()**: 处理用户选择的菜单项。 4. **视图(View)设计**: - "视图"是数据模型在屏幕上的表示,可以由CcoeControl派生的控件实现,形成层次结构。 - **容器(Container)**: 控制视图布局的父...

    Symbian_OS_View_Architecture_v1_1_en.pdf

    文档描述:“Symbian OS View Architecture v1.1 en.pdf”提供了Symbian操作系统视图架构的详细概述,包括其设计原理、实现方法以及在不同平台上的应用。 文档标签:“symbian” 文档部分内容:该文档介绍了...

    symbian devdiv

    - **3.1.5 更改菜单项 (menuitem)**:同样地,菜单项也可以根据应用程序的状态进行更改。 - **3.1.6 命令处理**:S60 提供了强大的命令处理机制,使得开发者可以方便地响应用户的命令输入。 - **3.2 按键事件与...

    views_in_uiq3

    - **视图间的切换**:允许用户从当前视图直接跳转到另一个视图,而不必返回到主菜单或基础视图。 - **应用程序内的导航**:在同一个应用程序内部的视图之间进行导航。 - **使用其他应用程序的视图**:DNL也可以用于...

    Symbian入门与环境配置

    - 响应各种用户触发的事件,例如用户选择菜单项; - 响应系统触发的不同事件,例如导致屏幕重绘的窗口服务器事件; - 能够保存和恢复应用程序数据; - 可以向框架唯一标识自身; - 向框架提供有关应用程序的描述性...

    S60_应用框架手册.pdf

    - **更改菜单项**:提供了关于如何修改菜单项的显示和行为的信息。 #### 五、滚动服务 - **确保正确的滚动控制-滚动指示器对应关系**:讲解了如何确保滚动条和滚动区域之间的一致性和正确性,以提供良好的用户体验...

    symbian很好的练手作业

    Symbian操作系统,尤其在S60平台上,曾是智能手机领域的主流系统,为开发者提供了丰富的功能和广阔的开发空间。对于初学者来说,Symbian是一个极好的实践平台,能够深入理解移动应用开发的基础和原理。以下是一些...

    symbian小程序

    Symbian小程序的用户界面通常基于Series 60或UIQ的原生控件,例如菜单、按钮、列表视图等。开发者需要熟悉这些控件的用法,以创建符合用户习惯的交互体验。 **6. 性能优化** 由于Symbian设备的资源限制,性能优化至...

    Dynamic_Setting_List_Example_v1_0.zip

    为了实现动态编辑列表内容,开发者需要提供用户界面元素,如按钮或菜单项,来触发添加、删除和修改操作。当用户触发这些操作时,相应的回调函数会被调用,这些函数会修改列表对象的数据,并更新列表视图。在Symbian...

    如何在激活某个View时把简单对象(T类)做为参数进行传递.pdf

    在Symbian的Series60平台上,通过使用`CAknViewAppUi::ActivateLocalViewL`方法结合自定义参数类和`TPckgBuf`,开发者可以在激活视图时高效地传递各种类型的数据。这一技巧对于构建功能丰富的多视图应用程序至关重要...

    S60_Platform_Custom_UI_and_Screen_Rotation_Example

    通过继承并扩展这些基本类,我们可以定制自己的控件和界面布局,例如创建新的按钮样式、自定义菜单项或者独特的滑动效果。 在S60UICodeEx压缩包中,可能包含了一系列示例代码,用于演示如何实现UI定制。开发者可以...

    Qt Creator教程(超级浅显易懂_非常适合初学者).pdf

    - 菜单和图标的添加:教程会指导如何为程序添加菜单栏和图标,增加程序的可用性和美观性。 三、Qt Creator界面设计 - 布局管理器的使用:深入学习Qt Creator中的布局管理器,例如水平布局、垂直布局等,合理安排...

    DVR使用手册V1.01.pdf

    2. **菜单操作**: 详细介绍每个子菜单下的具体设置项及其功能作用。 #### 六、系统控制 1. **云台控制**: 说明了如何通过DVR控制云台摄像头的移动和调整。 2. **视频控制**: 包括视频缩放、图像亮度调节等功能。 3....

    设计60系列c++游戏

    60系列游戏构建在Symbian OS v6.1之上,该操作系统为游戏开发提供了一个稳定的底层支持。Avkon作为该系列游戏的关键组件之一,它不仅扩展了Symbian OS的基础用户界面框架(Uikon),还提供了一系列高级特性,使得游戏...

    OfflineRunner使用手册

    并且详细描述了OfflineRunner的各个菜单项功能,比如文件、视图、选项、工具和帮助菜单,每个子菜单项都有其具体的功能和使用场景,使得用户可以依据自身需求高效地执行测试任务。 手册还特别强调了设备识别过程的...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题。页面难以兼容适应不同分辨率的设备...

Global site tag (gtag.js) - Google Analytics