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)、开发者如何知道用户按下了“选择”键,确定了其选择的菜单项?如何知道用户选择了哪个选项?

原创粉丝点击