forループの中で、[中止]ボタンに反応するには?

解決


katakani  2006-08-24 17:47:00  No: 62815  IP: 192.*.*.*

次のようなループで処理を行っていて、あるボタン([中止]ボタン)を押した
時にだけ処理を中止するようなことはできるでしょうか?できるのであれば
その方法を教えて下さい。

(例)
for(int i = 0; i < 100; i++){

編集 削除
Blue  2006-08-24 17:53:45  No: 62816  IP: 192.*.*.*

ループをしているときにボタンは押せますか?

普通はこういう処理はスレッドに分けてます。
開発環境が明記されていないため、具体的なやり方は説明できませんが。

編集 削除
katakani  2006-08-24 18:01:51  No: 62817  IP: 192.*.*.*

途中で間違えて送信してしまいました。再度質問します。

次のようなループで処理を行っていて、あるボタン([中止]ボタン)を押した
時にだけ処理を中止するようなことはできるでしょうか?できるのであれば
その方法を教えて下さい。

(例)
for(int i = 0; i < 100; i++){
    (何らかの処理)
    ....
    if(中止ボタンが押されたかどうか判定){
        i=100;
    }
}

上の例の、「中止ボタンが押されたかどうか判定」の部分は、
どうすればいいでしょうか?
PeekMessage()を使ってみたのですが、マウスをちょっと動かしただけでループから抜けてしまいます。
特定のボタンにのみ反応するようにするには、そのmessageの内容を判断
しないといけないと思うのですが、その方法がよくわかりません。
なお、使っているのは、Microsoft Visual Studio .NET 2003で、
MFCアプリケーションでプロジェクトを作成していて、
メインの処理を開始するためのボタンと中止ボタンを同じDialogに置いて
使おうとしています。

よろしくお願いします。

編集 削除
Blue  2006-08-24 18:07:19  No: 62818  IP: 192.*.*.*

類似スレです。参考にどうぞ。

ループ処理中に他のコントロールを制御するには
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200208/02080076.txt

編集 削除
katakani  2006-08-28 11:02:55  No: 62819  IP: 192.*.*.*

ご教示ありがとうございました。参考にしてやってみます。
またわからないことがありましたらよろしくお願いいたします。

編集 削除