次の方法で共有


リフレクション メッセージ用のメッセージ ハンドラーの定義

新しい MFC コントロール クラスを作成したら、そのクラスのメッセージ ハンドラーを定義できます。リフレクション メッセージ ハンドラーを設定すると、メッセージを親が受信する前に、コントロール クラス自身でメッセージを処理できます。MFC の CWnd::SendMessage 関数を使用して、コントロールから親ウィンドウにメッセージを送信できます。

たとえば、この機能を使用すると、自身を再描画するリスト ボックスを作成できるため、親ウィンドウで描画する (オーナー描画) 必要がありません。リフレクション メッセージの詳細については、「反映されたメッセージの処理方法」を参照してください。

同じ機能を持つ ActiveX コントロールを作成するには、ActiveX コントロール用のプロジェクトを作成する必要があります。

[!メモ]

以下で説明するように、[プロパティ] ウィンドウを使用して ActiveX コントロール用のリフレクション メッセージ (OCM_Message) を追加することはできません。メッセージは手動で追加する必要があります。

[プロパティ] ウィンドウでリフレクション メッセージのメッセージ ハンドラーを定義するには

  1. リスト コントロール、rebar コントロール、ツール バー コントロール、ツリー コントロールなどのコントロールを MFC プロジェクトに追加します。

  2. クラス ビューで、コントロール クラスの名前をクリックします。

  3. [プロパティ] ウィンドウ[クラス名] ボックスの一覧に、コントロール クラスの名前が表示されます。

  4. [メッセージ] をクリックして、コントロールに追加できる Windows メッセージを表示します。

  5. [プロパティ] ウィンドウのメッセージの一覧を下にスクロールして、見出し [反映済み] を表示します。または、[カテゴリ] をクリックしてビューを縮小し、見出し [反映済み] を表示します。

  6. ハンドラーを定義するリフレクション メッセージを選択します。リフレクション メッセージに等号 (=) が付けられます。

  7. [プロパティ] ウィンドウの右の列にあるセルをクリックして、[<追加> HandlerName] などのハンドラーの名前を表示します。たとえば、=WM_CTLCOLOR メッセージ ハンドラーの場合は <追加>CtlColor になります。

  8. 使用する名前をクリックします。プロジェクトにハンドラーが追加されます。

    追加したメッセージ ハンドラーの名前が、リフレクション メッセージ ウィンドウの右の列に表示されます。

  9. メッセージ ハンドラーを編集または削除するには、手順 4. ~ 7. を繰り返します。編集または削除するハンドラー名を含むセルをクリックし、適切なタスクをクリックしてください。

参照

処理手順

関数へのメッセージの割り当て

メンバー関数の追加

メンバー変数の追加

仮想関数のオーバーライド

関連項目

クラス各部へのジャンプ

概念

コード ウィザードを使用した機能の追加

クラスの追加

MFC メッセージ ハンドラーの追加