一 消息映射 1.消息映射的添加 1.1 在FrameWnd添加消息宏定义 DECLEARE_MESSAGE_MAP 1.2 添加消息宏实现 BEGIN_MESSAGE_MAP(theClass, parentClass) END_MESSAGE_MAP() 1.3 添加消息处理函数 afx_msg LRESULT OnPaint(WPARAM wParam, LPARAM lParam) 1.4 添加一个消息与函数的对应 二 MFC消息的分类 1. 窗口消息 例如WM_CREATE ,WM_PAINT,鼠标,键盘等消息,这些消息的处理方式是直接调用消息处理函数。 这类消息使用的宏: ON_MESSAGE( ) ON_WM_XXXX( ) :ON_WM_CREATE( ) 2. 命令消息 WM_COMMAND 菜单,工具栏,按钮等点击时的命令。 消息首先发送到主窗口,然后由主窗口逐层向子窗口派发。 这类消息使用的宏: ON_COMMAND( ) ON_COMMAND_RANGE( ) 消息处理时在OnWndMsg中调用OnCommand处理函数进行消息处理。 3. 通知消息WM_NOTIFY通知消息: 子窗口给父窗口的通知消息。 控件消息宏,例如:ON_EN_CHANGE ON_NOTIFY / ON_NOTIFY_RANGE 消息处理时调用OnNtify(OnCommand)处理函数进行处理。 4. 自注册消息。 用户自定义的消息处理。 用户需要调用RegisterWindowMessage函数注册消息,然后在消息映射中使用 ON_REGISTERED_MESSAGE RegisterWindowMessage 消息处理时,与窗口消息处理类似,但是在查找消息处理函数和执行处理函数时不同。