「Windows API/イベントドリブン方式」の版間の差分

削除された内容 追加された内容
PeekMessage() 関数
126 行
というような感じのコードが、最初から作成されています(Visual Studioのバージョンによって多少の差異の可能性あり)。
 
コード中のGetMessage() 関数を除去氏、おおむね次ところをコードのようにPeekMessage() 関数に置き換えれば( たとえば<code>PeekMessage(&msg,NULL,0,0,PM_REMOVE)</code>など )、イベントドリブン方式をやめて、メッセージの到着を待たずに処理をしていく、従来的な手続き型になります。
 
:例
<source lang=c>
MSG msg;
 
// メイン メッセージ ループ:
while (TRUE) // whileの論理式が変わっている
{
if ( PeekMessage(&msg,NULL,0,0,PM_REMOVE) ) // if文の条件式が変わっている
{
// このブロックはそのままでいい
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else // elseが追加されている
{
// 描画処理など
InvalidateRect(hwnd , NULL , FALSE); // 描画の実行
}
}
return (int)msg.wParam;
</source>
 
 
( たとえば<code>PeekMessage(&msg,NULL,0,0,PM_REMOVE)</code>など )、イベントドリブン方式をやめて、メッセージの到着を待たずに処理をしていく、従来的な手続き型になります。
 
一方、GetMessage() 関数のままの場合なら、メッセージの到着を待って処理をしていく方式になるので、「イベントドリブン方式でループをしていく」と宣言していることになります。