下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境電子商務(wù)平臺(tái)廣告服務(wù)合同4篇
- 2025年度水電工程設(shè)計(jì)與施工一體化合同匯編4篇
- 2025年度重型沖擊鉆施工工程合同4篇
- 2025年鮮蛋冷鏈配送與售后服務(wù)合同3篇
- 個(gè)人土地抵押貸款合同范本打印版(2024)一
- 2025年度智慧城市建設(shè)物業(yè)服務(wù)委托合同4篇
- 2025年度餐飲行業(yè)供應(yīng)鏈戰(zhàn)略合作框架協(xié)議3篇
- 教育技術(shù)在小學(xué)科學(xué)課題研究中的應(yīng)用與發(fā)展
- 個(gè)人借款轉(zhuǎn)讓協(xié)議簡明示例版
- 2025年度個(gè)人租賃房屋租賃合同違約責(zé)任及處理協(xié)議4篇
- 人教版物理八年級下冊 專項(xiàng)訓(xùn)練卷 (一)力、運(yùn)動(dòng)和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機(jī)構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項(xiàng)練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級數(shù)學(xué)下冊全冊課件
評論
0/150
提交評論