展訊平臺(tái)窗口創(chuàng)建流程_第1頁
展訊平臺(tái)窗口創(chuàng)建流程_第2頁
展訊平臺(tái)窗口創(chuàng)建流程_第3頁
展訊平臺(tái)窗口創(chuàng)建流程_第4頁
展訊平臺(tái)窗口創(chuàng)建流程_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、窗口創(chuàng)建流程簡介窗口在展訊平臺(tái)中是一個(gè)至關(guān)重要的概念,與Win dows操作系統(tǒng)相類似的,窗口在展訊平臺(tái)中就是最終呈現(xiàn)給用戶的一個(gè)應(yīng)用程序。在這里,我們可以把窗口看作一個(gè)應(yīng)用程序,因?yàn)?,它不但能夠顯示內(nèi)容給用戶,而且更為重要的是, 窗口能夠處理系統(tǒng)中所有的內(nèi)部消息及發(fā)送到該窗口的外部消息。一個(gè)應(yīng)用程序是由一個(gè)或多個(gè)窗口構(gòu)成的,例如 Idle窗口只包含一個(gè)窗口, 而短消息模塊包含多個(gè)窗口。應(yīng)用程序都是通過窗口顯示給用戶, 并最終實(shí)現(xiàn)人 機(jī)交互。下面我們來看下展訊平臺(tái)的窗口創(chuàng)建流程。圖1動(dòng)態(tài)窗口創(chuàng)建流程圖2靜態(tài)窗口創(chuàng)建流程窗口分為靜態(tài)窗口和動(dòng)態(tài)窗口,靜態(tài)窗口會(huì)在宏 WINDOW_TAB中Efe定義

2、好 窗口的屬性,而動(dòng)態(tài)窗口是在實(shí)現(xiàn)時(shí)動(dòng)態(tài)創(chuàng)建窗口屬性。 具體如何選擇,根據(jù)應(yīng) 用的需要來選擇。展訊平臺(tái)為用戶提供了創(chuàng)建靜態(tài)窗口和動(dòng)態(tài)窗口的接口,分別為函數(shù) MMK_CreateWi和函數(shù)MMK_CreateWindow具體如何創(chuàng)建窗口,可以參考展訊文 檔,這里主要講述調(diào)用創(chuàng)建窗口接口后的流程。通過上面兩個(gè)流程圖,我們可以看到靜態(tài)窗口和動(dòng)態(tài)窗口的創(chuàng)建會(huì)調(diào)用幾個(gè) 相同的函數(shù) MMK_AddTreeNodTreeNodeNew和 MMK_WindowTreeNodeConstruct 這三個(gè)函數(shù)是為了創(chuàng)建窗口節(jié)點(diǎn),窗口是通過樹來管理的,如下圖:圖3窗口管理展訊平臺(tái)里退出當(dāng)前窗口時(shí),系統(tǒng)會(huì)執(zhí)行注銷當(dāng)前

3、窗口的操作,用樹管理窗 口的好處就是這時(shí)候系統(tǒng)會(huì)自動(dòng)進(jìn)入父窗口,從而達(dá)到用戶希望的效果。倉U建完窗口節(jié)點(diǎn)后,會(huì)創(chuàng)建窗口的一些基本屬性,如背景、顯示區(qū)域等,這 個(gè)時(shí)候我們看不到其它的屬性,如狀態(tài)欄、菜單、編輯框等等。靜態(tài)窗口和動(dòng)態(tài)窗口在這之后就會(huì)出現(xiàn)一些區(qū)別, 靜態(tài)窗口會(huì)在后面繼續(xù)創(chuàng) 建窗口其它的屬性,這些屬性在先前宏 WINDOW_TAB中已經(jīng)定義好的,比如狀 態(tài)欄、標(biāo)題欄、菜單欄、soft控件等。這些屬性的創(chuàng)建是在以下函數(shù)中進(jìn)行的。PUBLIC BOOLEAN MMK_ParseWi nTab(MMI_HANDLE_T win_ha ndle,ui nt32*win_tab_ptr)valu

4、e_ptr = win _tab_ptr;while (END_WIN != *value_ptr) & (CAF_END_WIN != *value_ptr)ins = *value_ptr;value_ptr+;if (FIRST_PARSE in s)result = MMKParseFu ncins - FIRST_PARSE(win_ha ndle,& value_ptr); 調(diào)用函數(shù)表 中的函數(shù)來創(chuàng)建窗口的其它屬性else if (CHILD_CTRL_FIRST in s)result = GUIFORM_ParseChild(ins - CHILD_CTRL_FIRST),wi

5、n_handle,&value_ptr);else if (CAF_PARSEWIN_FIRST in s)result = CAFParseFu ncins - CAF_PARSEWIN_FIRST(win_ha ndle,&value_ptr);elseif (!result)break;return (result);LOCAL const PARSE_FUNMCMKParseFunc =SetWinPrio,SetWinFunc,SetWinId,CreateMenuCtrl,CreatePopmenuCtrl,CreateMsgBoxCtrl,CreatePrgBoxCtrl,Cre

6、ateTextCtrl,CreateListBoxCtrl,CreateEditTextCtrl,CreateEditPhonenumCtrl,CreateEditDigitalCtrl,CreateEditPasswordCtrl,CreateEditListCtrl,CreateEditDateCtrl,CreateEditTimeCtrl,CreateEditIPCtrl,CreateAnimCtrl,SetWinBackgroundID,CreateLabelCtrl,CreateButtonCtrl,SetWinStyle,CreateDropDownListCtrl,CreateI

7、conListCtrl,CreateRichTextCtrl,CreateTabCtrl,CreateStatusBarCtrl,CreateSoftkeyCtrl,CreateTitleCtrl,SetWinMoveStyle,CreateTipsCtrl,CreateSettingList,CreateFormCtrl,CreateOwnDrawCtrl,CreateToolbarCtrl,SetWinSupportAngle,;而動(dòng)態(tài)窗口在創(chuàng)建完基本的屬性后, 需要手動(dòng)創(chuàng)建窗口的其它屬性。 如以下代碼: LOCAL void OpenFileListMainWin(BOOLEAN is_

8、internal_call)if(!MMK_IsOpenWin(MMIFMM_OPEN_FILE_BYLAYER_WIN_ID)MMI_WINDOW_CREATE_T win_create = 0;MMI_HANDLE_T win_handle = 0;MMI_CONTROL_CREATE_T create = 0;GUILIST_INIT_DATA_T init_data = 0;win_create.applet_handle = MMK_GetFirstAppletHandle(); win_create.win_id = MMIFMM_OPEN_FILE_BYLAYER_WIN_ID;

9、 win_create.win_priority = WIN_ONE_LEVEL;win_create.add_data_ptr = (ADD_DATA)(is_internal_call);win_create.window_style = 0;win_create.window_move_style = MOVE_BY_SETTING;if (NULL = s_handle_func)win_create.func = MMIFMM_HandleOpenFileByLayerWin;elsewin_create.func = s_handle_func;win_handle = MMK_C

10、reateWindow( &win_create );/ 創(chuàng)建動(dòng)態(tài)窗口 /create softkey if (0 != win_handle) GUISOFTKEY_INIT_DATA_sToftkey_data = 0;MMI_CONTROL_CREATE_T softkey_create = 0;MMI_CTRL_ID_T softkey_ctrl_id = 0;= STXT_OK;= TXT_NULL;= STXT_RETURN;softkey_data.leftsoft_id softkey_data.midsoft_id softkey_data.rightsoft_id soft

11、key_ctrl_id = MMITHEME_GetSoftkeyCtrlId(); softkey_create.ctrl_id = softkey_ctrl_id; softkey_create.guid = SPRD_GUI_SOFTKEY_ID; softkey_create.parent_win_handle = win_handle; softkey_create.init_data_ptr = &softkey_data;MMK_CreateControl( &softkey_create );/創(chuàng)建 soft 控件 MMK_SetWinSoftkeyCtrlId(win_han

12、dle, softkey_ctrl_id);/create titleif (0 != win_handle)GUIWIN_CreateTitleDy na(win_ha ndle, TXT_FMM_FILE_LIST創(chuàng)/建標(biāo) 題欄/create listif( 0 != win_handle )init_data.both_rect=MMITHEME_GetWinClientBothRect(win_handle);/init_data.both_rect.h_rect = init_data.both_rect.v_rect = list_rect; init_data.type = GUILIST_TEXTLIST_E; init_data.is_dynamic_item_data = TRUE;create.ctrl_id = MMIFMM_OPEN_FILE_BYLAYER_LIST_CTRL_ID; create.guid = SPRD_GUI_LIST_ID;cre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論