次の方法で共有


メッセージの送受信

プロセスの送信部分と、フレームワークがどのように応答するかを検討します。

ほとんどのメッセージは、ユーザーがプログラムとやり取りした結果です。 コマンドは、メニュー項目またはツール バー ボタンのマウス クリックによって、またはアクセラレータのキーストロークによって生成されます。 ユーザーは、ウィンドウの移動やサイズ変更などによって、Windows メッセージも生成します。 その他の Windows メッセージは、プログラムの起動や終了などのイベントが発生した場合、ウィンドウがフォーカスを取得または失うときなどに送信されます。 コントロール通知メッセージは、マウス クリックや、ダイアログ ボックス内のボタンやリスト ボックス コントロールなどのコントロールとの他のユーザー操作によって生成されます。

クラス RunCWinApp メンバー関数は、メッセージを取得し、適切なウィンドウにディスパッチします。 ほとんどのコマンド メッセージは、アプリケーションのメイン フレーム ウィンドウに送信されます。 クラス ライブラリによって事前に定義された WindowProc は、メッセージを取得し、受信したメッセージのカテゴリに応じて異なる方法でルーティングします。

次に、プロセスの受信部分を検討します。

メッセージの最初の受信側は、ウィンドウ オブジェクトである必要があります。 Windows メッセージは通常、そのウィンドウ オブジェクトによって直接処理されます。 通常、アプリケーションのメイン フレーム ウィンドウから送信されるコマンド メッセージは、「 コマンド ルーティング」で説明されているコマンド ターゲット チェーンにルーティングされます。

メッセージまたはコマンドを受信できる各オブジェクトには、メッセージまたはコマンドをハンドラーの名前とペアにする独自のメッセージ マップがあります。

コマンド ターゲット オブジェクトは、メッセージまたはコマンドを受信すると、そのメッセージ マップで一致するものを検索します。 メッセージのハンドラーが見つかると、ハンドラーが呼び出されます。 メッセージ マップの検索方法の詳細については、「 フレームワークがメッセージ マップを検索する方法」を参照してください。 フレームワークのコマンドの図をもう一度参照してください。

こちらも参照ください

フレームワークがハンドラーを呼び出す方法