0

ユーザーが情報を入力して [Go] ボタンを押すことができるダイアログがあります。彼らがこのボタンを押すと、フォーム要素 (ボタンなど) を無効にし、 を使用してワーカー スレッドを作成しますAfxBeginThread( ... )。ワーカー スレッドが完了したら、UI スレッドにメッセージを送信して、フォームを再度有効にします。を使用::PostMessage( ... )してメッセージを送信していますが、これらのメッセージを傍受する方法が見つかりません。

私はオンラインで検索しました (リンク #1リンク #2リンク #3 ) が、独自のメッセージ リスナーを実装するコードのわかりやすい例が見つかりません。ヘッダーには、何か関係があるように見えるいくつかのクレイジーな define ステートメント ( で始まるDECLARE_MESSAGE_MAP()) が表示されますが、それを理解することはできません。

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

3

メッセージ マップはテーブルです。関心のあるメッセージごとに、メッセージと、メッセージ ハンドラー関数への関数ポインターが含まれています。カスタム メッセージをマップに追加するには、ON_MESSAGE エントリをテーブルに追加します。ワーカー スレッドからこれを行うチュートリアルの例は次のとおりです。

http://vcfaq.mvps.org/mfc/12.htm

于 2013-08-22T16:17:46.743 に答える