PeekMessage()関数


BOOL PeekMessage(
 LPMSG lpMsg,
 HWND hWnd,
 UINT wMsgFilterMin,
 UINT wMsgFilterMax,
 UINT wRemoveMsg
);


lpMsgメッセージを取得するMSG構造体へのポインタ
hWndメッセージを取得するウィンドウへのハンドル
wMsgFilterMin取得するメッセージの最小値。両方0にするとフィルタリングしない。
wMsgFilterMax取得するメッセージの最大値。両方0にするとフィルタリングしない。
wRemoveMsgPM_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 {
  // アイドル時の処理を行う
 }
}

Windows > メッセージループ | comments (0) | trackbacks (0)

Comments

Comment Form

icons:

Trackbacks