ループから抜ける方法

解決


HI  2004-03-04 21:13:25  No: 53266  IP: [192.*.*.*]

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

編集 削除
あらふせい  2004-03-05 00:58:15  No: 53267  IP: [192.*.*.*]

たとえば、無限ループに、下記のようなメッセージ処理部を入れてあげれば、
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 09:42:51  No: 53268  IP: [192.*.*.*]

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

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

編集 削除