2

アプリを実行するときに、MFC で 2 つのウィンドウを同時に実行しようとしています。BOOL CrTestTaskApp::InitInstance() - 私のアプリの初期化関数で、私はこれを書きました:

CrStartDlg sDlg;
sDlg.DoModal();
CrMainDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();

if (nResponse == IDOK)
{

}
else if (nResponse == IDCANCEL)
{

}

しかし、2 番目のダイアログは、最初に閉じた後にのみ表示されます。また、BtnClick() の最初のダイアログで Modal() の 2 番目のダイアログを作成すると、それらを切り替えることができません..アクティブな 1 つだけ...

助けてください。

4

1 に答える 1

3

DoModalメソッドによって作成されたモーダルではなく、モードレス ダイアログが必要です。

モードレス ダイアログは、通常のウィンドウで作成されCDialog::Create、通常のウィンドウとして機能し、共有メッセージ キュー/ポンプを介してディスパッチされたメッセージに応答します。

于 2013-08-26T14:46:08.940 に答える