• 締切済み

PeekMessage

キューにあるメッセージを調べて、その結果で 処理を場合分けしようと思っています。  case 123:   //ここでキューにWM_LBUTTONDOWNがあればそれは消さずに   //PM_NOREMOVEでMyFunc()を実行する。   MSG msg;   PeekMessage(&msg, hWndCap, WM_LBUTTONDOWN, WM_LBUTTONDOWN, PM_NOREMOVE);   if(msg.message == WM_LBUTTONDOWN) MyFunc();  break; これであってますか? キューにメッセージが2つ以上溜まっていることもあると思うけど そんな時はPeekMessage()でMSG構造体にメッセージを入れたら どうなるんですか? 2つ以上溜まっている場合、1番有効なメッセージがMSG構造体に 格納されて、その後それがSendMessage()されて、2番有効な メッセージがPeekMessage()でMSG構造体に格納 っていうのを繰り返すんですか?

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

よろしくないです(^^;;; PeekMessage()の戻り値をチェックして目的のメッセージが取得できたか判断してください。戻り値についてはヘルプを見てください。 メッセージ”キュー”というくらいですから先入れ先出しですよね。 2つ以上あったら先にPostされたメッセージを取得できます。 もちろん連続して呼び出せば、次にPostされたメッセージも取得できます。 あと、SendMessage()は、メッセージキューに関してまったく関係ありません。

関連するQ&A