午夜精品福利视频,亚洲激情专区,免费看a网站,aa毛片,亚洲色图激情小说,亚洲一级毛片,免费一级毛片一级毛片aa

解釋一下Windows的消息機(jī)制

時(shí)間:2024-09-04 09:26:26 資料大全 我要投稿
  • 相關(guān)推薦

解釋一下Windows的消息機(jī)制

  Windows是一個(gè)消息(Message)驅(qū)動(dòng)系統(tǒng),

解釋一下Windows的消息機(jī)制

。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á)窗口函數(shù)必須經(jīng)歷的過程。

  必須注意的是,消息并非是搶占性的,無論事件的緩急,總是按照到達(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è)功能:TranslateMessage 和DispatchMessage,

資料共享平臺(tái)

解釋一下Windows的消息機(jī)制》(http://www.stanzs.com)。

  另外,需要注意,當(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ā)消息。

  如上所述,大部分(注意是大部分)的消息是這樣傳遞的:首先放到進(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_SHOWWINDOW消息。當(dāng)WinMain調(diào)用 UpdateWindow時(shí),Windows將給窗口消息處理函數(shù)發(fā)送WM_PAINT消息。

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

2016春晚消息趙本山06-23

周五祝福短消息07-30

元旦放假安排消息10-21

周五問候祝福消息發(fā)給客戶09-22

美國(guó)股市熔斷機(jī)制08-27

a股熔斷機(jī)制條件及步驟09-23

新三板退市機(jī)制09-12

企業(yè)建立機(jī)制的好處和壞處09-22

面試后很久都沒消息,該怎么辦?08-17

普通高中學(xué)校財(cái)政保障機(jī)制調(diào)研報(bào)告06-18