20110510 Brew工程師培訓筆記——第十章 IDisplay使用簡介

第十章 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)、開發者如何知道用戶按下了“選擇”鍵,確定了其選擇的菜單項?如何知道用戶選擇了哪個選項?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章