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」を参照してください。
こちらも参照ください
MFC ActiveX コントロール: Windows コントロールのサブクラス化
TN062: Windows コントロールのメッセージ リフレクション