ループから抜ける方法

解決


HI  2004-03-05 06:13:25  No: 53266

Visual C++で無限ループをつくり
例えばストップボタンなどを作成して
ループから抜けるにはどうすれば
いいのでしょうか。
実際には無限ループ中には画面は固まってしまい
ボタンは押せません。
知っている人がいれば回答よろしくお願いします。


あらふせい  2004-03-05 09:58:15  No: 53267

たとえば、無限ループに、下記のようなメッセージ処理部を入れてあげれば、
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();
  }


HI  2004-03-06 18:42:51  No: 53268

解決しました。言われたとおり以下のように無限ループの中に
入れることで画面が固まらなくなりました。
助かります。   

     MSG    msg;
     PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);  
     TranslateMessage(&msg);
     DispatchMessage(&msg);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加