次の方法で共有


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

更新 : 2007 年 11 月

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

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

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

ay5hhhk3.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

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

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

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

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

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

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

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

参照

処理手順

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

メンバ関数の追加

メンバ変数の追加

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

概念

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

クラスの追加

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

参照

クラス各部へのジャンプ