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