次の方法で共有


メッセージの種類

更新 : 2007 年 11 月

メッセージの種類に応じて作成するハンドラも異なります。メッセージは主に次の 3 種類に分類されます。

  1. Windows メッセージ

    この種類に分類されるメッセージは、プリフィックス WM_ で始まります (ただし WM_COMMAND は除きます)。Windows メッセージは、ウィンドウとビューで処理されます。この種類のメッセージには、メッセージの処理方法を指定するパラメータを持つものもあります。

  2. コントロール通知

    この種類に分類されるメッセージは、コントロールなどの子ウィンドウから親ウィンドウに送られる WM_COMMAND 通知メッセージです。たとえば、ユーザーがエディット コントロールのテキストを変更する操作を行うと、エディット コントロールから親ウィンドウに EN_CHANGE コントロール通知コード付きの WM_COMMAND メッセージが送られます。この通知メッセージを受け取ると、ウィンドウのメッセージ ハンドラは、コントロール内のテキストを取り出すなど、該当する処理を行います。

    フレームワークでは、ほかの WM_ メッセージと同じようにコントロール通知メッセージを送り出します。ただし、ユーザーがボタンをクリックしたときに送られる BN_CLICKED コントロール通知メッセージは例外です。このメッセージは、特別にコマンド メッセージとして扱われ、ほかのコマンド メッセージと同じように送られます。

  3. コマンド メッセージ

    この種類に分類されるメッセージは、メニュー、ツール バー ボタン、アクセラレータ キーなどのユーザー インターフェイス オブジェクトから送られる WM_COMMAND 通知メッセージです。フレームワークでは、コマンド メッセージをほかのメッセージとは違う方法で処理します。コマンドは、「コマンド ターゲット」で説明するように、各種のオブジェクトでも処理できます。

Windows メッセージとコントロール通知メッセージ

1 番目と 2 番目の種類に分類されるメッセージ (Windows メッセージとコントロール通知) は、ウィンドウ (CWnd クラスからの派生クラスのオブジェクト) で処理されます。ウィンドウには、CFrameWndCMDIFrameWndCMDIChildWndCViewCDialog の各クラスと派生クラスのオブジェクトがあります。これらのオブジェクトには、Windows のウィンドウへのハンドル HWND がカプセル化されています。

コマンド メッセージ

3 番目の種類に分類されるコマンド メッセージは、各種のオブジェクト (ウィンドウとビューの他に、ドキュメント、ドキュメント テンプレート、およびアプリケーション オブジェクト自体) で処理されます。あるコマンドが特定のオブジェクトに直接影響を及ぼす場合は、そのオブジェクト自身でコマンドを処理します。たとえば、[ファイル] メニューの [開く] コマンドは、アプリケーションに論理的に関連付けられています。したがって、このコマンドを受け取ると、アプリケーションは指定されたドキュメントを開きます。そこで、[ファイル] メニューの [開く] コマンドのハンドラをアプリケーション クラスのメンバ関数にします。各コマンドをオブジェクトに転送する方法の詳細については、「フレームワークがハンドラを呼び出す方法」を参照してください。

参照

概念

フレームワークのメッセージとコマンド