Doeventsの副作用について


KT  2005-03-19 19:28:31  No: 56719

環境
OS:xp
VC++.NET 2003
フォームアプリケーション(.NET)

宜しくお願いします。

フォーム上にメインメニュー(menuItemをa、bとする)、ボタン1、ラベル1を用意します。そしてボタン1のイベントに次のソースを書き込みます。

//******************************************************
this->mainMenu1->MenuItems->Item[0]->Enabled = false;
this->mainMenu1->MenuItems->Item[1]->Enabled = false;
int i = 0;
while( i++ < 999999 ) {
Application::DoEvents();
label1->Text = i.ToString();
}
this->mainMenu1->MenuItems->Item[0]->Enabled = true;
this->mainMenu1->MenuItems->Item[1]->Enabled = true;
//******************************************************
これを実行中、メニューのaをクリックするとEnabled = false;
であるにもかかわらずフォーカスが移り処理が中断してしまいます。

メニュー全体を処理中でも押せないようにしたいのですがなにか
方法はないでしょうか。


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

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






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