コードのどこかに、PeekMessage
イベントを取得するために呼び出すループ関数があります。
現在、次のようになっています。
while (PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
{
// Process events
}
ここで、別の場所で入力を管理したいと考えています。つまりWM_KEYDOWN
、WM_MOUSEMOVE
(マウスとキーボードのイベント) などのメッセージを別の場所で、メイン ループの別の時間に取得したいと考えています。
PeekMessage
WM_KEYFIRST
の 3 番目と 4 番目の引数により、返されるメッセージの範囲を定義できるため、提供されたマクロ、WM_KEYLAST
、WM_MOUSEFIRST
およびを使用してこれを使用できますWM_MOUSELAST
。しかし、入力をチェックする範囲が 2 つあり、残りのすべてに対して 3 つの範囲があるため、不便です。
最後のパラメーターはフラグで、入力として渡すことができPM_REMOVE | PM_QS_INPUT
ます。しかし、他のすべてのメッセージを取得したい場合は、他のループに何を渡す必要がありますか? PM_QS_EVERYTHING_EXCEPT_INPUT
マクロはありません...
これを行う最もエレガントな方法は何でしょうか?