リフレクション メッセージ用のメッセージ ハンドラーの定義
新しい MFC コントロール クラスを作成したら、そのクラスのメッセージ ハンドラーを定義できます。 リフレクション メッセージ ハンドラーを設定すると、メッセージを親が受信する前に、コントロール クラス自身でメッセージを処理できます。 MFC の CWnd::SendMessage 関数を使用して、コントロールから親ウィンドウにメッセージを送信できます。
たとえば、この機能を使用すると、自身を再描画するリスト ボックスを作成できるため、親ウィンドウで描画する (オーナー描画) 必要がありません。 リフレクション メッセージの詳細については、「反映されたメッセージの処理方法」を参照してください。
同じ機能を持つ ActiveX コントロールを作成するには、ActiveX コントロール用のプロジェクトを作成する必要があります。
注意
以下で説明するように、[プロパティ] ウィンドウを使用して ActiveX コントロール用のリフレクション メッセージ (OCM_Message) を追加することはできません。 メッセージは手動で追加する必要があります。
[プロパティ] ウィンドウでリフレクション メッセージのメッセージ ハンドラーを定義するには
リスト コントロール、rebar コントロール、ツール バー コントロール、ツリー コントロールなどのコントロールを MFC プロジェクトに追加します。
クラス ビューで、コントロール クラスの名前をクリックします。
[プロパティ] ウィンドウの [クラス名] ボックスの一覧に、コントロール クラスの名前が表示されます。
[メッセージ] をクリックして、コントロールに追加できる Windows メッセージを表示します。
[プロパティ] ウィンドウのメッセージの一覧を下にスクロールして、見出し [反映済み] を表示します。 または、[カテゴリ] をクリックしてビューを縮小し、見出し [反映済み] を表示します。
ハンドラーを定義するリフレクション メッセージを選択します。 リフレクション メッセージに等号 (=) が付けられます。
[プロパティ] ウィンドウの右の列にあるセルをクリックして、[<追加> HandlerName] などのハンドラーの名前を表示します。 たとえば、=WM_CTLCOLOR メッセージ ハンドラーの場合は <追加>CtlColor になります。
使用する名前をクリックします。 プロジェクトにハンドラーが追加されます。
追加したメッセージ ハンドラーの名前が、リフレクション メッセージ ウィンドウの右の列に表示されます。
メッセージ ハンドラーを編集または削除するには、手順 4. ~ 7. を繰り返します。 編集または削除するハンドラー名を含むセルをクリックし、適切なタスクをクリックしてください。