众所周知Windows 基于事件驱动机制的操作系统,消息对于操作系统来说就像鱼与水的关系。Windows的消息分类有很多种类,今天我们只谈一种比较有用的Windows消息分类,可分为三类,分别是标准消息、命令消息和通告消息。
(一)标准消息
所有的以WM_开头的消息都是标准消息,除了WM_COMMAND消息除外,所有从CWnd派生的类都可以接收标准消息,包括CWnd本身。
(二)命令消息
由菜单、加速键或工具栏的按钮产生的消息都是命令消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。
从CCmdTarget派生的类,都可以接收到这类消息。
(三)通告消息
由控件产生的消息都是通告消息,例如,按钮的单击,复选框、列表框的选择等均产生此类消息,为的是向其父窗口(通常是对话框)通知(notify)事件的发生。这类消息也是以WM_COMMAND形式呈现。
从CCmdTarget派生的类,都可以接收到这类消息。
CCmdTarge和CWnd的继承关系