DoModalについて

解決


matsu  2006-05-10 09:06:20  No: 61715

OS:WindowsXP Pro SP2
VS.NET2003

CxxxDlgクラスのボタンクリックイベントで以下の処理(単にDialogを開く)
を行っています。

CyyyDlg m_yyy;
m_yyy.DoModal();

CyyyDlgのOnInitDialogで
CDialog::OnInitDialog();

AfxMessageBox("123");

とすると、CyyyDlgが開いている状態でCxxxDlgが操作できてしまいます。
ボタンを押したり、閉じたり...

何故そうなるのか理由を教えて頂けないでしょうか。
よろしくお願いします。


スナナ  2006-05-10 20:19:13  No: 61716

CWinApp::DoMessageBox()内で、一番手前のウィンドウをEnableにしているからだと思います。
回避するためには、AfxMessageBox()後に、CxxxDlgをDisableにしてあげれば良いです。(CWnd::EnableWindow(FALSE)を呼び出す)


matsu  2006-05-11 06:36:15  No: 61717

スナナさん、ありがとうございます。

モヤモヤが解決できました。


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

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






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