訊息的分類

2021-08-14 18:22:28 字數 645 閱讀 9537

1.佇列訊息和非佇列訊息

從訊息的傳送途徑上看,訊息分為兩種:佇列訊息和非佇列訊息。佇列訊息送到系統訊息佇列,然後到執行緒訊息佇列;非佇列訊息直接送給目的視窗過程。

這裡,對訊息佇列闡述如下:

windows維護乙個系統訊息佇列,每個gui執行緒有乙個執行緒訊息佇列。

滑鼠、鍵盤事件由滑鼠或鍵盤驅動程式轉換成輸入訊息並把訊息放進系統訊息佇列,例如:wm_mousemove、wm_lbuttonup、wm_keydown、wm_char等等。windows每次從系統訊息佇列移走乙個訊息,確定它是送給哪個視窗的和這個視窗是哪個執行緒建立的,然後,把它放進建立視窗的執行緒的執行緒訊息佇列。執行緒訊息佇列接收送給該執行緒所建立的視窗的訊息。執行緒從訊息佇列取出訊息,通過windows把它送給適當的視窗過程來處理。除了鍵盤、滑鼠訊息以外,佇列訊息還有wm_paint、wm_timer、和wm_quit。

2.系統訊息和應用程式訊息

系統訊息id的範圍是從0到wm_user-1,或0x8000到0xbfff;應用程式訊息從wm_user(0x0400)到0x7fff,或0xc000到0xffff;wm_user到0x7fff範圍的訊息由應用程式自己使用;0xc000到0xffff範圍的訊息用來和其他應用程式通訊,為了id的唯一性,使用::registerwindowmessage來得到該範圍的訊息id。

訊息的分類

windows訊息分類 1.標準訊息 除wm command之外的訊息,所有wm 開頭的訊息。從cwnd派生的類,都可以接收到這類訊息。2.command訊息 來自選單,加速鍵或工具欄按鈕的訊息。這類訊息都以wm command訊息呈現。在mfc中通過選單項的標識id來區分不同的命令訊息,在sdk中...

Windows訊息分類

windows訊息分為三類 標準訊息 除了wm command 之外,所有以 wm 開頭的訊息都是標準訊息,從 cwnd 派生的類都可以接受這類訊息。例如 在.h檔案中宣告的wm rbuttondown標準的訊息 afx msg declare message map 在.cpp檔案中宣告的wm r...

windows訊息分類

windows中,訊息被分為以下三類 第一類 標準訊息 除了wm command之外,所有的wm 開頭的訊息都是標準訊息。從cwnd派生的類,都可以接收這類訊息。例如wm char wm close,其對應的訊息對映巨集分別是on wm char on wm close 第二類 命令訊息 來自選單 ...