PeekMessage()関数
BOOL PeekMessage(
LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg
);
lpMsg | メッセージを取得するMSG構造体へのポインタ |
hWnd | メッセージを取得するウィンドウへのハンドル |
wMsgFilterMin | 取得するメッセージの最小値。両方0にするとフィルタリングしない。 |
wMsgFilterMax | 取得するメッセージの最大値。両方0にするとフィルタリングしない。 |
wRemoveMsg | PM_REMOVE メッセージをキューから削除する PM_NOREMOVE メッセージをキューから削除しない。 |
メッセージを取得した時は、0以外の値が返ります。
メッセージを取得しなかった時は、0が返ります。
GetMessage関数と違い、PeekMessage関数は、キュー内にメッセージが置かれるまで待つことはありません。
while (1) {
if ( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) {
// メッセージがある場合はそれを処理する
if ( msg.message == WM_QUIT ) break;
DispatchMessage( &msg );
} else {
// アイドル時の処理を行う
}
}