Visual C++で無限ループをつくり
例えばストップボタンなどを作成して
ループから抜けるにはどうすれば
いいのでしょうか。
実際には無限ループ中には画面は固まってしまい
ボタンは押せません。
知っている人がいれば回答よろしくお願いします。
たとえば、無限ループに、下記のようなメッセージ処理部を入れてあげれば、
whileループにいながらにして、画面が固まらずに、キューに溜まったメッセージを処理できます。
また、PeekMessageの引数に、WM_KEYFIRST,WM_KEYLASTを指定したものを加えると、キー入力だけを取得する事もできます。
そのままPeekMessageの記述を変えると、通常のメッセージが処理できませんから、Windowが固まります。(^^;
こういう意味でいいのでしょうか?
while(1){
MSG msg;
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
abc();
}
解決しました。言われたとおり以下のように無限ループの中に
入れることで画面が固まらなくなりました。
助かります。
MSG msg;
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
TranslateMessage(&msg);
DispatchMessage(&msg);
ツイート | ![]() |