- 締切済み
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構造体に格納 っていうのを繰り返すんですか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
よろしくないです(^^;;; PeekMessage()の戻り値をチェックして目的のメッセージが取得できたか判断してください。戻り値についてはヘルプを見てください。 メッセージ”キュー”というくらいですから先入れ先出しですよね。 2つ以上あったら先にPostされたメッセージを取得できます。 もちろん連続して呼び出せば、次にPostされたメッセージも取得できます。 あと、SendMessage()は、メッセージキューに関してまったく関係ありません。