版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、UCGUI技術(shù)文集UCGUI專業(yè)網(wǎng)站:UCGUI專業(yè)論壇1UCGUIUCGUI窗體管理及消息處理機(jī)制分析窗體管理及消息處理機(jī)制分析多對話框模態(tài)窗體透明窗體支持分析作者:ucgui日期:20050908[v1.0.0.020050630完成]來源:版本:v1.0.0.1版本版本修改說明修改說明時間時間v1.0.0.0?實現(xiàn)UCGUI中多對話框支持。20050630v1.0.0.1?增加UCGUI中各種基本消息介紹。?增加窗體消息LOOP機(jī)
2、制介紹。?增加對話框結(jié)構(gòu)說明及其消息LOOP處理移到MainTask函數(shù)中由用戶處理的原因剖析,并詳細(xì)分析了對話框中按鈕的點擊消息傳送到用戶自定義對話框回調(diào)函數(shù)中處理的傳遞流程。?增加外部輸入設(shè)備消息處理機(jī)制介紹。如滑動操作外設(shè)MOUSE及觸摸屏輸入消息(WM_TOUCH)的處理機(jī)制,及按鍵式操作外設(shè)消息(WM_KEY)處理機(jī)制。?增加一種更簡單的多對話框支持的方法及說明。?增加模態(tài)對話框?qū)崿F(xiàn)原理分析。?增加透明窗體實現(xiàn)原理分析。200
3、50908問題的提出問題的提出:?[求助]關(guān)于對話框處理程序中,想在OK按鈕按下后想彈出一個消息框,該怎么做?直接加在程序中好像不行,如何讓消息框彈出后成為模態(tài)窗體呢?請版主幫幫忙。?[解析]在UCGUI中,對話框只支持單個對話框窗體,不支持多個獨立的對話框,現(xiàn)在我們從其源碼來分析一下它為什么支持單個對話框窗體以及如何改進(jìn)它以支持多個獨立對話框,要講解這個問題我們必須首先理解UCGUI中的窗體消息LOOP,沒有消息LOOP窗體就是死水一
4、潭,不能接受任何外界的輸入只是一個畫在那里的圖畫而已。?[聲明]本文中提到的源碼均為UCGUI3.24UCGUI3.24版源碼版源碼,新版UCGUI源碼會有改動,請下載本文示例代碼來結(jié)合閱讀本文。摘要摘要:本文主要介紹了UCGUI中的對話框的消息處理機(jī)制并指出在現(xiàn)有UCGUI上如何增加多窗體支持并在分析解決問題時著重介紹了其輸入設(shè)備消息WM_TOUTCH及WM_KEY兩類消息處理方法并同時初步指出一種在UCGUI中實現(xiàn)UCGUI技術(shù)文集
5、UCGUI專業(yè)網(wǎng)站:UCGUI專業(yè)論壇3會著重講解到該消息的產(chǎn)生。[透明窗體]經(jīng)常有朋友想知道在UCGUI中如何實現(xiàn)透明窗體,透明窗窗體顯示在前臺時,可以看到部分位于其窗體后的內(nèi)容,即透過窗體可以看到窗體背后的圖象。在UCGUI中有關(guān)于透明窗體的設(shè)置選項,可是沒有實現(xiàn)此功能,其實要實現(xiàn)原理如下:第一透明窗體及其所有子窗體都必須透明處理;第二是對于所有有透明屬性的窗體,在繪圖時必須使用透明填充功能的矩形填充函數(shù),主要是修改窗體的WM_PA
6、INT消息中畫窗體時的矩形填充函數(shù)為透明的矩形填充;第三透明的矩形填充函數(shù)的實現(xiàn),通常情況下的矩形填充是以當(dāng)前前景色來填充,那么關(guān)鍵就是實現(xiàn)畫點函數(shù)的透明填充,要使一個透明,可以取當(dāng)前顯存中存點的點的RGB顏色,然后再與當(dāng)前要畫的顏色按照一個比例進(jìn)行混合得一個新的RGB值,再將此值畫以屏幕上就可能實現(xiàn)透明填充的效果。?WM_TOUCH處理類似MOUSE的滑動操作方式的輸入外設(shè)的消息,如觸摸屏一般都是將其消息從硬件接收到后轉(zhuǎn)化為該消息形式
7、發(fā)送出去,該消息中必須包含消息在屏幕中的發(fā)生位置坐標(biāo)及輸入設(shè)備狀態(tài)(按下狀態(tài)或彈起狀態(tài)),此消息在任務(wù)消息循環(huán)中循環(huán)處理,一旦產(chǎn)生就會發(fā)送給當(dāng)前焦點窗體,在后面將詳細(xì)講解該消息的處理機(jī)制。?WM_KEY處理類似KEY的按鍵式操作的輸入外設(shè)的消息,消息中必須包含按鍵的按下或彈起狀態(tài),此消息也是在任務(wù)消息循環(huán)中循環(huán)處理,一旦產(chǎn)生就會發(fā)送給當(dāng)前焦點窗體,講解消息LOOP時再詳細(xì)介紹。?WM_SET_FOCUS講到剛才上面的兩個消息時,就反復(fù)提
8、到了當(dāng)前焦點窗體的概念,所有外部輸入設(shè)備消息都是發(fā)送給當(dāng)前焦點窗體的,用戶可以通過此消息來設(shè)定當(dāng)前的焦點窗體。外部輸入操作也會改變當(dāng)前焦點窗體,如點擊某窗體時會在該窗體的WM_TOUCH消息處理中設(shè)置該窗體本身為當(dāng)前焦點窗體;當(dāng)在對話框中按鍵TAB鍵時,同樣也可以將焦點在對話框上各控件間切換,這是在對話框的WM_KEY消息中處理實現(xiàn)的[了解一下WM_SetFocusOnNextChild()函數(shù)],是根據(jù)創(chuàng)建對話框時指定的資源定義數(shù)組中
9、的順序來切換的,并沒有WIN下面指定的TabIndex這樣一個值來指定次序的值。?WM_NOTIFY_PARENT這個消息將子窗體的外設(shè)輸入的消息傳送到它的父窗體,因為一般的情況下消息都是在父窗體中統(tǒng)一處理的,如對話框中的按鈕點擊事件,一般都是在用戶自定義的窗體消息處理函數(shù)中處理,所以就必須要子窗體將獲取的輸入外設(shè)的消息傳送給父窗體,這樣才能在父窗體中進(jìn)行子窗體的點擊事件消息的處理,這個消息的機(jī)制類似WIN下面的WM_COMM消息,處理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)急處理機(jī)制
- 基于WCF的分布式異步消息處理機(jī)制的研究.pdf
- 投訴處理機(jī)制
- 可定制異步消息通信處理機(jī)制的研究與應(yīng)用.pdf
- 客戶投訴處理機(jī)制
- 面向?qū)ο蟮腤indows消息處理機(jī)制研究及其在POS機(jī)上的應(yīng)用.pdf
- 消防安全預(yù)警及應(yīng)急處理機(jī)制
- cpu卡安全處理機(jī)制
- 異常處理機(jī)制研究.pdf
- 醫(yī)院價格投訴處理機(jī)制
- 醫(yī)院價格投訴處理機(jī)制
- 農(nóng)民工投訴處理機(jī)制
- 基于Java異常處理機(jī)制的分析與研究.pdf
- 域名與商標(biāo)糾紛處理機(jī)制及完善.pdf
- 我國企業(yè)勞動爭議及處理機(jī)制研究
- 勞動糾紛處理機(jī)制的完善
- 醫(yī)院危機(jī)預(yù)警和處理機(jī)制
- 政府危機(jī)管理善后處理機(jī)制研究.pdf
- 病死畜禽無害化處理機(jī)制
- 基于語義網(wǎng)的網(wǎng)絡(luò)管理服務(wù)處理機(jī)制.pdf
評論
0/150
提交評論