消息映射宏的種類

1)用於Windows消息的宏,前綴爲ON_WM_”

這樣的宏不帶參數,因爲它對應的消息和消息處理函數的函數名稱、函數原型是確定的。MFC提供了這類消息處理函數的定義和缺省實現。每個這樣的宏處理不同的Windows消息。例如:宏ON_WM_CREATE把消息WM_CREATE映射到OnCreate函數,消息映射條目的第一個成員nMessage指定爲要處理的Windows消息的ID,第二個成員nCode指定爲0.

2)用於命令消息的宏ON_COMMAND

這類宏帶有參數,需要通過參數指定命令ID和消息處理函數。這類消息都映射到WM_COMMAND上,也就是將消息映射條目的第一個成員nMessage指定爲WM_COMMAND,第二個成員指定爲CN_COMMAND(即0)。消息處理函數的原型是void(void),不帶參數,不返回值。

除了單條命令消息的映射,還有把一定範圍的命令消息映射到一個消息處理函數的映射宏ON_COMMAND_RANGE。這類宏帶有參數,需要指定命令ID的範圍和消息處理函數。這些消息都映射到WM_COMMAND上,也就是將消息映射條目的第一個成員nMessage指定爲WM_COMMAND,第二個成員nCode指定爲CN_COMMAND(即0),第三個成員nID和第四個成員nLastID指定了映射消息的起止範圍。消息處理函數的原型是void(UINT),有一個UINT類型的參數,表示要處理的命令消息ID,不返回值。

上面的描述貌似在當前有點改變了

ON_COMMAND_RANGE(UWM_WAVE_START,UWM_WAVE_END,&C*View::On**)

3)用於控制通知消息的宏

ON_MESSAGE ON_NOTIFY

4)用於用戶界面接口狀態更新的ON_UPDATE_COMMAND_UI宏

ON_UPDATE_COMMAND_UI

ON_UPDATE_COMMAND_UI_RANGE

5)用於其他消息的宏

例如用戶自定義的消息ON_MESSAGE

6)擴展消息映射宏

Windows RegisterWindowMessage 函數用於定義確保爲唯一的整個系統中的新的 Windows 消息



發佈了329 篇原創文章 · 獲贊 33 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章