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

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

例如,使用此功能,可以创建一个重新绘制自身的列表框,而不是依赖父窗口来执行此操作(所有者绘制)。 有关反射消息的详细信息,请参阅处理反射消息

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

注意

不能使用类向导为 ActiveX 控件添加反射消息 (OCM_Message),如下所述。 必须手动添加这些消息。

为来自类向导的反射消息定义消息处理程序

  1. 向 MFC 项目添加控件,例如列表、rebar 控件、工具栏或树控件。

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

  3. 类向导中,控件类名称出现在“类名称”列表中。

  4. 单击“消息”选项卡以显示可添加到控件的 Windows 消息。

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

  6. 单击类向导右列中的单元格以将建议的处理程序名称显示为 <add>HandlerName。 (例如,“=WM_CTLCOLOR”消息处理程序表示 <add>CtlColor)。

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

  8. 要编辑或删除消息处理程序,请重复步骤 4 到 7。 单击包含要编辑或删除的处理程序名称的单元格,然后单击相应的任务。

另请参阅

将消息映射到函数
用代码向导添加功能
添加类
添加成员函数
添加成员变量
重写虚函数
MFC 消息处理程序
导航类结构