创建 ActiveX 控件或其他专用控件的快速方法是将窗口子类化。 有关详细信息,请参阅 MFC ActiveX 控件:子类化 Windows 控件。
为了防止控件的容器接收子类化 Windows 控件发送的窗口消息, COleControl 会创建一个“反射器”窗口来截获某些窗口消息并将其发送回控件。 然后,控件在其窗口过程中可以通过采取适用于 ActiveX 控件的作来处理这些反映的消息。
下表显示了截获的消息以及反射器窗口发送的相应消息。
控件发送的消息 | 反映到控件的消息 |
---|---|
WM_COMMAND | OCM_COMMAND |
WM_CTLCOLORBTN | OCM_CTLCOLORBTN |
WM_CTLCOLOREDIT | OCM_CTLCOLOREDIT |
WM_CTLCOLORDLG | OCM_CTLCOLORDLG |
WM_CTLCOLORLISTBOX | OCM_CTLCOLORLISTBOX |
WM_CTLCOLORSCROLLBAR | OCM_CTLCOLORSCROLLBAR |
WM_CTLCOLORSTATIC | OCM_CTLCOLORSTATIC |
WM_DRAWITEM | OCM_DRAWITEM |
WM_MEASUREITEM | OCM_MEASUREITEM |
WM_DELETEITEM | OCM_DELETEITEM |
WM_VKEYTOITEM | OCM_VKEYTOITEM |
WM_CHARTOITEM | OCM_CHARTOITEM |
WM_COMPAREITEM | OCM_COMPAREITEM |
WM_HSCROLL | OCM_HSCROLL |
WM_VSCROLL | OCM_VSCROLL |
WM_PARENTNOTIFY | OCM_PARENTNOTIFY |
WM_NOTIFY | OCM_NOTIFY |
注释
如果控件在 Win32 系统上运行,则可能会收到多种类型的 WM_CTLCOLOR* 消息。 有关详细信息,请参阅WM_CTLCOLORBTN、WM_CTLCOLORDLG、WM_CTLCOLOREDIT、WM_CTLCOLORLISTBOX、WM_CTLCOLORMSGBOX、WM_CTLCOLORSCROLLBAR、WM_CTLCOLORSTATIC。