下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、解釋一下 Windows 的消息機(jī)制Windows 是一個(gè)消息(Message)驅(qū)動(dòng)系統(tǒng)。Windows 的消息 提供了應(yīng)用程序之間、應(yīng)用程序與Windows系統(tǒng)之間進(jìn)行通信的手 段。應(yīng)用程序想要實(shí)現(xiàn)的功能由消息來觸發(fā), 并且靠對(duì)消息的響應(yīng)和 處理來完成。Windows 系統(tǒng)中有兩種消息隊(duì)列:系統(tǒng)消息隊(duì)列和應(yīng)用程序 消息隊(duì)列。計(jì)算機(jī)的所有輸入設(shè)備由 Windows監(jiān)控。當(dāng)一個(gè)事件發(fā) 生時(shí),Windows先將輸入的消息放入系統(tǒng)消息隊(duì)列中,再將消息拷 貝到相應(yīng)的應(yīng)用程序消息隊(duì)列中。應(yīng)用程序的消息處理程序?qū)⒎磸?fù)檢 測(cè)消息隊(duì)列,并把檢測(cè)到的每個(gè)消息發(fā)送到相應(yīng)的窗口函數(shù)中。這便是一個(gè)事件從發(fā)生至到達(dá)窗口
2、函數(shù)必須經(jīng)歷的過程。必須注意的是,消息并非是搶占性的,無論事件的緩急,總是i按照到達(dá)的先后派對(duì),依次處理(一些系統(tǒng)消息除外),這樣可能使一 些實(shí)時(shí)外部事件得不到及時(shí)處理。Windows 中的消息是放在對(duì)應(yīng)的進(jìn)程的消息隊(duì)列里的??梢?通過GetMessage取得,并且對(duì)于一般的消息,此函數(shù)返回非零值, 但是對(duì)于 WM_QUIT消息,返回零??梢酝ㄟ^這個(gè)特征,結(jié)束程序。 當(dāng)取得消息之后,應(yīng)該先轉(zhuǎn)換消息,再分發(fā)消息。所謂轉(zhuǎn)換,就是把 鍵盤碼的轉(zhuǎn)換,所謂分發(fā),就是把消息分發(fā)給對(duì)應(yīng)的窗口,由對(duì)應(yīng)的 窗口處理消息,這樣對(duì)應(yīng)窗體的消息處理函數(shù)就會(huì)被調(diào)用。兩個(gè)函數(shù)可以實(shí)現(xiàn)這兩個(gè)功能:TranslateMess
3、age 和 DispatchMessage 。另外,需要注意,當(dāng)我們點(diǎn)擊窗口的關(guān)閉按鈕關(guān)閉窗口時(shí),程 序并沒有自動(dòng)退出,而是向程序發(fā)送了一個(gè) WM_DESTROY消息(其 實(shí)過程是這樣的,首先向程序發(fā)送 WM_CLOSE消息,默認(rèn)的處理程 序是調(diào)用DestroyWindow 銷毀窗體,從而引發(fā) WM_DESTROY消 息),此時(shí)在窗體中我們要響應(yīng)這個(gè)消息,如果需要退出程序,那么 就要向程序發(fā)送 WM_QUIT消息(通過PostQuitMessage 實(shí)現(xiàn))。一 個(gè)窗體如果想要調(diào)用自己的消息處理函數(shù),可以使用SendMessage向自己發(fā)消息。如上所述,大部分(注意是大部分)的消息是這樣傳遞的:
4、首先 放到進(jìn)程的消息隊(duì)列中,之后由 GetMessage取出,轉(zhuǎn)換后,分發(fā) 給對(duì)應(yīng)的窗口。這種消息成為存儲(chǔ)式消息。存儲(chǔ)式消息基本上是使用 者輸入的結(jié)果,以擊鍵(如 WM_KEYDOWN 和 WM_KEYUP訊息)、 擊鍵產(chǎn)生的字符(WM_CHAR)、鼠標(biāo)移動(dòng)(WM_MOUSEMOVE)和鼠 標(biāo)按鈕(WM_LBUTTONDOWN)的形式給出。存儲(chǔ)式消息還包含時(shí)鐘 消息(WM_TIMER)、更新消息(WM_PAINT)和退出消息 (WM_QUIT)。但是也有的消息是直接發(fā)送給窗口的,它們被稱為非存儲(chǔ)式消 息。例如,當(dāng) WinMain 調(diào)用 CreateWindow 時(shí),Windows 將建 立窗口并在處理中給窗口消息處理函數(shù)發(fā)送一個(gè)WM_CREATE消息。當(dāng) WinMain 調(diào)用 ShowWindow 時(shí),Windows 將給窗口消息 處理函數(shù)發(fā)送 WM_SIZE 和 WM_SHOWWIND
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024訂購酒的購銷合同范本范文
- 專題6 課內(nèi)閱讀 (一)(知識(shí)盤點(diǎn)+試題)-2022-2023學(xué)年五年級(jí)語文下冊(cè)期末復(fù)習(xí)
- 城區(qū)生活垃圾焚燒發(fā)電工程PPP項(xiàng)目招投標(biāo)書范本
- 2024路沿石購銷合同
- 2024商鋪?zhàn)赓U標(biāo)準(zhǔn)合同范本
- 2024電子產(chǎn)品購銷合同格式模板
- 2024物業(yè)保潔勞務(wù)合同
- 2024股權(quán)轉(zhuǎn)讓委托合同標(biāo)準(zhǔn)范本
- 規(guī)劃課題申報(bào)范例:《習(xí)近平新時(shí)代中國特色社會(huì)主義思想學(xué)生讀本》教學(xué)研究(附可修改技術(shù)路線圖)
- 茶水贈(zèng)送合同(2篇)
- 電梯使用現(xiàn)場(chǎng)類隱患專項(xiàng)排查清單
- 一例下肢靜脈潰瘍患者的個(gè)案護(hù)理論文
- 危巖穩(wěn)定性計(jì)算表格-滑移式-傾倒式-墜落式-完整版
- 直播運(yùn)營團(tuán)隊(duì)組織架構(gòu)及崗位職責(zé)解析
- 肝膽外科運(yùn)用PDCA循環(huán)縮短三四類手術(shù)患者術(shù)后留置導(dǎo)尿的時(shí)間
- JCT640-2010 頂進(jìn)施工法用鋼筋混凝土排水管
- 注塑車間平面規(guī)劃圖OK
- 鎮(zhèn)衛(wèi)生院績效考核方案
- 9.2+積極投身創(chuàng)新實(shí)踐(高效教案)-【中職專用】中職思想政治《哲學(xué)與人生》(高教版2023基礎(chǔ)模塊)
- 【高中語文】《邏輯的力量》課件+統(tǒng)編版++選擇性必修上冊(cè)
評(píng)論
0/150
提交評(píng)論