forループを用いた場合にも、操作可能にするには?

解決


初心者  2004-07-11 00:21:52  No: 53954  IP: [192.*.*.*]

初歩的な質問で恐縮ですが、
C***View クラスの中である関数(OnStart(void))を作成し、

void C***Viwe::OnStart(void){
     .....

     for(int i=0; i<10000; i++){
          MainLearning();
     }
     .....
}

となるように設定しました。
このMainLearning()がプログラムの根幹をなす部分なのですが、
forループが終了するまで、一切の入力・クリック等を受け付けません。
これを解決する方法はありますか?
MainLearning()を繰り返し実行している間も、
メニューバーをクリックしたり、ウィンドウを動かせれば良いのですが。

編集    削除
シャノン  2004-07-11 00:40:27  No: 53955  IP: [192.*.*.*]

1.簡単だがお勧めしない方法
  for ループ中にメッセージポンプを挿入する。

2.面倒だが理想的な方法
  for ループをスレッドとして切り出す

代表的な解決手段としては、以上2通りでしょうか。

編集    削除
初心者  2004-07-11 03:24:03  No: 53956  IP: [192.*.*.*]

シャノンさん、適切な返答ありがとうございます。

スレッドによる方法を試し、
簡単なプログラムなら動くようになりました。
いま作っているものではまだエラーが出てしまいますが・・。
これも調べていけば、時間の問題だと思います。

編集    削除