// コード1
MSG message;
message.message = WM_NULL;
while (message.message != WM_QUIT)
{
if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
// TranslateMessage関数は
// キーイベントを扱わないため省く
DispatchMessage(&message);
}
else
{
// 『メインループで行いたい処理』
}
}
メッセージがあればDispatchMessage関数を呼び出し
メッセージがなければ『メインループで行いたい処理』を行うようにしています。
ここで、もし以下のようなコードにしたとします。
// コード2
MSG message;
message.message = WM_NULL;
while (message.message != WM_QUIT)
{
if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
// TranslateMessage関数は
// キーイベントを扱わないため省く
DispatchMessage(&message);
}
// else
{
// メッセージの有無に関わらずに
// 『メインループで行いたい処理』を行うように変更した
}
}
DispatchMessage関数の他に
『メインループで行いたい処理』を呼び出すというように変更しました。
MSDNのDirectXのサンプルコードでは コード1 と同じコードになっていますが、
コード2のように書くのはいけないのでしょうか。