0

MFC と Windows メッセージングの概念は初めてです。Windows メッセージとイベントの相違点または類似点は何ですか? たとえば、ユーザーがキーまたはコントロールの閉じるボタンを押したとき、それはメッセージまたはイベントになりますか?

ありがとう

4

1 に答える 1

4

ユーザーがキーを押すか、その他の形式の入力を実行すると、システムはメッセージをメッセージ キューに入れます。次に、アプリはメッセージ ループでこれらのメッセージを取り出し、処理する必要があります。

多くの UI フレームワークは、これらのメッセージを処理してイベントに変換します。あなたが話しているイベントは、Windows が定義するイベントではないことに注意してください。イベントのその使用は、使用しているプログラミング言語/フレームワークで定義された概念を指します。Windows イベントは、スレッドの同期に使用されます。

最上位のメッセージ ループは次のようになります。

MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

を呼び出すとDispatchMessage、ウィンドウ プロシージャが呼び出されます。通常、GUI フレームワークはそのウィンドウ プロシージャを実装し、メッセージをイベントに変換します。

したがって、エグゼクティブサマリーは次のとおりです。

  1. 入力イベントはメッセージにつながります。
  2. GUI フレームワークはメッセージをイベントに変換します。
  3. これらのイベントに応答するイベント ハンドラーを実装します。
于 2012-05-23T11:19:13.470 に答える