メッセージの種類
メッセージの種類に応じて作成するハンドラーも異なります。 メッセージは主に次の 3 種類に分類されます。
Windows メッセージ
この種類に分類されるメッセージは、プリフィックス WM_ で始まります (ただし WM_COMMAND は除きます)。 Windows メッセージは、ウィンドウとビューで処理されます。 この種類のメッセージには、メッセージの処理方法を指定するパラメーターを持つものもあります。
コントロール通知
この種類に分類されるメッセージは、コントロールなどの子ウィンドウから親ウィンドウに送られる WM_COMMAND 通知メッセージです。 たとえば、ユーザーがエディット コントロールのテキストを変更する操作を行うと、エディット コントロールから親ウィンドウに EN_CHANGE コントロール通知コード付きの WM_COMMAND メッセージが送られます。 この通知メッセージを受け取ると、ウィンドウのメッセージ ハンドラーは、コントロール内のテキストを取り出すなど、該当する処理を行います。
フレームワークでは、ほかの WM_ メッセージと同じようにコントロール通知メッセージを送り出します。 ただし、ユーザーがボタンをクリックしたときに送られる BN_CLICKED コントロール通知メッセージは例外です。 このメッセージは、特別にコマンド メッセージとして扱われ、ほかのコマンド メッセージと同じように送られます。
コマンド メッセージ
これが含まれますWM_COMMANDユーザー インターフェイス オブジェクトからの通知メッセージ。メニューのツールバーのボタン、およびアクセラレータ キー。 フレームワークでは、コマンド メッセージをほかのメッセージとは違う方法で処理します。コマンドは、「コマンド ターゲット」で説明するように、各種のオブジェクトでも処理できます。
Windows メッセージとコントロール通知メッセージ
メッセージ 1 と 2 のカテゴリで — Windows メッセージとコントロール通知 — windows によって処理されます。オブジェクトのクラスの派生クラスからCWnd。 ウィンドウには、CFrameWnd、CMDIFrameWnd、CMDIChildWnd、CView、CDialog の各クラスと派生クラスのオブジェクトがあります。 これらのオブジェクトには、Windows のウィンドウへのハンドル HWND がカプセル化されています。
コマンド メッセージ
カテゴリ 3 のメッセージ — コマンド — オブジェクトの種類によって処理することができます。ドキュメント、ドキュメント テンプレート、およびウィンドウとビューに加えて、アプリケーション オブジェクト自体。 あるコマンドが特定のオブジェクトに直接影響を及ぼす場合は、そのオブジェクト自身でコマンドを処理します。 たとえば、[開く] コマンド、[ファイル] メニューは、アプリケーションに論理的に関連付けです。アプリケーションは、コマンドの受信時に、指定されたドキュメントを開きます。 そこで、[ファイル] メニューの [開く] コマンドのハンドラーをアプリケーション クラスのメンバー関数にします。 各コマンドをオブジェクトに転送する方法の詳細については、「フレームワークがハンドラーを呼び出す方法」を参照してください。