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