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 消息