基本的なことなのですが、WINAPIのメッセージループでわからないことがありまして、よろしくお願いします。
[1.1]PeekMessageを用いたメッセージループを作りたい(関数版)
[1.2]
bool CheckMessage(){
MSG msg;
ZeroMemory(&msg, sizeof(MSG));
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
if (msg.message == WM_QUIT){
gHwnd = NULL;
return false;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return true;
}
bool CheckMessage(){
MSG msg;
ZeroMemory(&msg, sizeof(MSG));
while (GetMessage(&msg, NULL, 0, 0)) {
if (msg.message == WM_QUIT){
gHwnd = NULL;
return false;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return true;
}
下記みたいな使い方を想定した関数を作っております [1.3]PeekMessageを使うループとそうでないループ
どちらもエラーなく動くのですが
PeekMessageを使った場合、タスクマネージャでCPU使用率を確認したら17%に跳ね上がっておりました。
使わない場合は使用率0%です。
ウィンドウを表示しているだけなのですが、この差はなんでしょうか?
ゲーム関連のループはPeekMessageを使ったほうがいいと書籍等にかいてあったのですが、
コードが間違ってたりしますか?変なことやってたり・・・
ご指摘よろしくおねがいします。