重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

キューにあるメッセージを調べて、その結果で
処理を場合分けしようと思っています。

 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構造体に格納
っていうのを繰り返すんですか?

A 回答 (1件)

よろしくないです(^^;;;


PeekMessage()の戻り値をチェックして目的のメッセージが取得できたか判断してください。戻り値についてはヘルプを見てください。


メッセージ”キュー”というくらいですから先入れ先出しですよね。
2つ以上あったら先にPostされたメッセージを取得できます。
もちろん連続して呼び出せば、次にPostされたメッセージも取得できます。

あと、SendMessage()は、メッセージキューに関してまったく関係ありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!