20110510 Brew工程师培训笔记——第十章 IDisplay使用简介
来源:互联网 发布:java中的同步方法 编辑:程序博客网 时间:2024/04/30 20:40
第十章 IMenuCtl 使用简介
一、主要内容
(1)、描述IMenuCtl控件的类型,所能提供的操作以及重要属性
(2)、启动事件代理机制
(3)、利用IMenuCtl进行程序开发
二、IMenuCtl概述
(1)、所谓菜单,就应该能让用户通过按“上”、“下”、“左”、“右”键来浏览所有可供选择的菜单选项,并将用户所选中的选项与别的选项区分开来
(2)、当用户按“选择”键时,EVT_COMMAND事件就会被发回给您的应用程序的事件处理函数
三、IMenuCtl控件类型
(1)、标准菜单(Standard menu control):ClassID为:AEECLSID_MENUCTL
(2)、List control:ClassID为: AEECLSID_LISTCTL
(3)、SoftKey menu control:ClassID为:AEECLSID_SOFTKEYCTL
(4)、Icon-view menu control:ClassID为: AEECLSID_ICONVIEWCTL
四、IMenuCtl使用手册
(1)、调用ISHELL_CreateInstance()创建一个菜单的实例,此时可根据需要输入不同的ClassID,创建不同类型的菜单;
(2)、调用IMENUCTL_SetRect()设置菜单显示的位置。如果没有设置,则默认显示区域为整个屏幕区域;
(3)、利用IMENUCTL_SetTitle()设置菜单标题;
(4)、调用IMENUCTL_AddItem()或IMENUCTL_AddItemEx()添加所需的菜单选项;
(5)、调用IMENUCTL_SetActive()将菜单设置为活动状态,以便接收用户的各种操作信息;
(6)、当不再使用菜单接口时,调用IMENUCTL_Release()对已申请的菜单资源进行释放。
五、IMenuCtl 属性
MP_WRAPSCROLL
MP_NO_ARROWS
MP_NO_REDRAW
MP_MAXSOFTKEYITEMS
MP_CALENDAR
MP_AUTOSCROLLTIME
MP_ICON_TEXT_TOP
MP_ICON_SINGLE_FRAME
MP_UNDERLINE_TITLE
注意:
每一个属性可能对1种或多种类型的菜单起作用,具体信息请参看BREW APIReference。
六、利用IMenuCtl操作的主要函数
IMENUCTL_SetTitle()
IMENUCTL_AddItem()
IMENUCTL_GetItemCount()
IMENUCTL_GetItem()
IMENUCTL_SetItem()
IMENUCTL_DeleteItem()
IMENUCTL_GetProperties()
IMENUCTL_SetProperties()
IMENUCTL_SetColors()
IMENUCTL_SetStyle()
IMENUCTL_IsActive()
IMENUCTL_SetActive()
七、启动事件代理机制
(1)、BREW Applet采用基于事件驱动的机制,每个BREW应用程序只需处理自己感兴趣的事件。
(2)、在处理事件时,某些特定的事件可以传给一些特定的接口,让其进行处理。如让光标在不同的菜单选项间切换,根据不同的输入法映射不同的输入内容等,就可通过如下的两个函数启动事件代理机制来完成:
(a)、IMENUCTL_HandleEvent()
(b)、ITEXTCTL_HandleEvent()
(3)、当“选择”键被按下的时候,事件处理权将传回给应用程序
(a)、EVT_COMMAND 就会被传回给该Applet的事件处理函数
八、事件代理机制的灵活性
九、事件代理示意图
十、利用IMenuCtl进行程序开发
综上所述,在设计菜单选项时需完善如下的几方面:
(1)、按照使用手册设计菜单选项;
(2)、利用IMENUCTL_HandleEvent()启动事件代理机制;
(3)、处理EVT_COMMAND事件,收回事件处理权;
(4)、处理EVT_APP_SUPPEND,EVT_APP_RESUME事件,以使程序能处理来电、来电结束等情况。
十一、本章关键点
(1)、菜单的种类
(2)、菜单的使用方法
(3)、事件代理机制
十二、问题回顾
(1)、BREW支持几种类型的菜单形式?他们分别是什么?
(2)、开发者如何知道用户按下了“选择”键,确定了其选择的菜单项?如何知道用户选择了哪个选项?
- 20110510 Brew工程师培训笔记——第十章 IDisplay使用简介
- 20110510 Brew工程师培训笔记——第九章 IDisplay使用简介
- 20110510 Brew工程师培训笔记——第二十四章 联通BREW 测试简介
- 20110503 Brew工程师培训笔记——第四章 BREW SDK 简介
- 20110510 Brew工程师培训笔记——第十六章 ITAPI 简介
- 20110510 Brew工程师培训笔记——第二十章 ILicense 简介
- 20110503 Brew工程师培训笔记——第一章 课程简介
- 20110504 Brew工程师培训笔记——第五章 BREW工具使用
- 20110510 Brew工程师培训笔记——第十三章 使用IImage接口
- 20110510 Brew工程师培训笔记——第十四章 使用ITextCtl接口
- 20110510 Brew工程师培训笔记——第十七章 地址簿的使用
- 20110510 Brew工程师培训笔记——第二十一章 BREW手机介绍
- 20110510 Brew工程师培训笔记——第二十三章 BREW 应用开发规范
- 20110510 Brew工程师培训笔记——第二十六章 开发一个完整的BREW程序
- 20110505 Brew工程师培训笔记——第八章 ISHELL简介
- 20110510 Brew工程师培训笔记——第二十二章 BREW 2.1和3.X的新特性
- 20110503 Brew工程师培训笔记——第二章 BREW概述
- 20110503 Brew工程师培训笔记——第三章 搭建BREW开发环境
- 如何判断国际会议是否被EI收录
- JS科学计数法分解
- 慎用 strip (1) arm linux
- ACL 是如何工作的
- 良好的监控架构
- 20110510 Brew工程师培训笔记——第十章 IDisplay使用简介
- 将BMP图像读成数组
- Ubuntu 10.04操作小总结
- 隐藏DataGridView中无数据的列
- android 3D 游戏实现之人物行走(MD2)
- 64位Win7安装使用32位网络打印机
- 字符串hash算法比较
- 使用 XMPP 构建一个基于 web 的通知工具
- 分享一下cookies操作(增、删、改、查)小经验