Reflected Window Message IDs
The latest version of this topic can be found at Reflected Window Message IDs.
A quick way to create an ActiveX control, or other specialized control, is to subclass a window. For more information, see MFC ActiveX Controls: Subclassing a Windows Control.
To prevent the control's container from receiving the window messages sent by a subclassed Windows control, COleControl creates a "reflector" window to intercept certain window messages and send them back to the control. The control, in its window procedure, can then process these reflected messages by taking actions appropriate for an ActiveX control.
The following table shows the messages that are intercepted and the corresponding messages that the reflector window sends.
Message sent by the control | Message reflected to the control |
---|---|
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 |
Note
If the control runs on a Win32 system, there are several types of WM_CTLCOLOR* messages it may receive. For more information, see WM_CTLCOLORBTN, WM_CTLCOLORDLG, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORMSGBOX, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC.
See Also
MFC ActiveX Controls: Subclassing a Windows Control
TN062: Message Reflection for Windows Controls