为反射消息定义消息处理程序

更新:2007 年 11 月

创建了新的 MFC 控件类后,可为其定义消息处理程序。反射消息处理程序允许控件类在父级收到消息之前处理自己的消息。可使用 MFC CWnd::SendMessage 函数将消息从控件发送到父窗口。

利用此功能,比如可创建重绘自身而不是依赖父窗口完成此操作(所有者描述的)的列表框。有关反射消息的更多信息,请参见处理反射消息

若要创建具有相同功能的 ActiveX 控件,必须为 ActiveX 控件创建项目。

说明:

不能用“属性”窗口为 ActiveX 控件添加反射消息 (OCM_Message),如下所述。必须手动添加这些消息。

从“属性”窗口中为反射消息定义消息处理程序

  1. 向 MFC 项目添加控件,如列表控件 (List Control)、rebar 控件、工具栏 (ToolBar) 控件或树控件 (Tree Control)。

  2. 在“类视图”中,单击控件类的名称。

  3. “属性”窗口中,控件类名出现在“类名”列表中。

  4. 单击“消息”按钮显示可用于添加到控件的 Windows 消息。

  5. 在“属性”窗口中向下滚动消息列表,直到可以看到标题“已反映”。或者,单击“类别”按钮并折叠视图以看到“已反映”标题。

  6. 选择要为其定义处理程序的反射消息。反射消息用等号 (=) 标记。

  7. 在“属性”窗口中,单击右列中的单元格以将建议的处理程序名称显示为 <add>HandlerName。(例如,=WM_CTLCOLOR 消息处理程序建议 <add>CtlColor 名称。)

  8. 单击建议的名称以接受。处理程序被添加到项目中。

    已添加的消息处理程序名称出现在反射消息窗口的右列中。

  9. 若要编辑或删除消息处理程序,请重复第 4 到第 7 步。单击包含要编辑或删除的处理程序名称的单元格并单击适当的任务。

请参见

任务

将消息映射到函数

添加成员函数

添加成员变量

重写虚函数

概念

用代码向导添加功能

添加类

添加 MFC 消息处理程序

参考

导航类结构