一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

解釋一下Windows的消息機制

時(shí)間:2020-11-21 17:39:57 筆試經(jīng)驗 我要投稿

解釋一下Windows的消息機制

  Windows是一個(gè)消息(Message)驅動(dòng)系統。Windows的消息提供了應用程序之間、應用程序與Windows系統之間進(jìn)行通信的手段。應用程序想要實(shí)現的功能由消息來(lái)觸發(fā),并且靠對消息的響應和處理來(lái)完成。

  Windows系統中有兩種消息隊列:系統消息隊列和應用程序消息隊列。計算機的所有輸入設備由Windows監控。當一個(gè)事件發(fā)生時(shí),Windows先將輸入的消息放入系統消息隊列中,再將消息拷貝到相應的應用程序消息隊列中。應用程序的消息處理程序將反復檢測消息隊列,并把檢測到的每個(gè)消息發(fā)送到相應的窗口函數中。這便是一個(gè)事件從發(fā)生至到達窗口函數必須經(jīng)歷的過(guò)程。

  必須注意的是,消息并非是搶占性的,無(wú)論事件的緩急,總是按照到達的`先后派對,依次處理(一些系統消息除外),這樣可能使一些實(shí)時(shí)外部事件得不到及時(shí)處理。

  Windows中的消息是放在對應的進(jìn)程的消息隊列里的?梢酝ㄟ^(guò)GetMessage取得,并且對于一般的消息,此函數返回非零值,但是對于 WM_QUIT消息,返回零?梢酝ㄟ^(guò)這個(gè)特征,結束程序。當取得消息之后,應該先轉換消息,再分發(fā)消息。所謂轉換,就是把鍵盤(pán)碼的轉換,所謂分發(fā),就是把消息分發(fā)給對應的窗口,由對應的窗口處理消息,這樣對應窗體的消息處理函數就會(huì )被調用。兩個(gè)函數可以實(shí)現這兩個(gè)功能:TranslateMessage 和DispatchMessage。

  另外,需要注意,當我們點(diǎn)擊窗口的關(guān)閉按鈕關(guān)閉窗口時(shí),程序并沒(méi)有自動(dòng)退出,而是向程序發(fā)送了一個(gè)WM_DESTROY消息(其實(shí)過(guò)程是這樣的,首先向程序發(fā)送WM_CLOSE消息,默認的處理程序是調用DestroyWindow銷(xiāo)毀窗體,從而引發(fā)WM_DESTROY消息),此時(shí)在窗體中我們要響應這個(gè)消息,如果需要退出程序,那么就要向程序發(fā)送WM_QUIT消息(通過(guò)PostQuitMessage實(shí)現)。一個(gè)窗體如果想要調用自己的消息處理函數,可以使用SendMessage向自己發(fā)消息。

  如上所述,大部分(注意是大部分)的消息是這樣傳遞的:首先放到進(jìn)程的消息隊列中,之后由GetMessage取出,轉換后,分發(fā)給對應的窗口。這種消息成為存儲式消息。存儲式消息基本上是使用者輸入的結果,以擊鍵(如WM_KEYDOWN和WM_KEYUP訊息)、擊鍵產(chǎn)生的字符(WM_CHAR)、鼠標移動(dòng)(WM_MOUSEMOVE)和鼠標按鈕(WM_LBUTTONDOWN)的形式給出。存儲式消息還包含時(shí)鐘消息(WM_TIMER)、更新消息(WM_PAINT)和退出消息(WM_QUIT)。

  但是也有的消息是直接發(fā)送給窗口的,它們被稱(chēng)為非存儲式消息。例如,當WinMain調用 CreateWindow時(shí),Windows將建立窗口并在處理中給窗口消息處理函數發(fā)送一個(gè)WM_CREATE消息。當WinMain調用 ShowWindow時(shí),Windows將給窗口消息處理函數發(fā)送WM_SIZE和WM_SHOWWINDOW消息。當WinMain調用 UpdateWindow時(shí),Windows將給窗口消息處理函數發(fā)送WM_PAINT消息。

【解釋一下Windows的消息機制】相關(guān)文章:

微軟Windows 7系統開(kāi)機加載過(guò)程的原理和機制09-28

Windows10-06

面向物聯(lián)網(wǎng)環(huán)境的網(wǎng)絡(luò )設備消息轉換機制分析08-15

windows安全配置的規則08-08

解釋一下XSS cookie盜竊是什么意思11-29

住房公積金制的消息07-20

Windows 操作系統的使用08-14

使用Windows XP的小技巧10-11

Windows XP的幾個(gè)使用技巧10-11

windows系統內存的優(yōu)化技巧10-07

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看