我有一个基于对话框的应用程序(MFC-VS 2008)。我有一个列表控件。我弹出其他对话框,但我也希望能够返回到父应用程序对话框。我可以回到父应用程序的dilaog框,但是问题是,即使我用鼠标单击它,它也仍然隐藏在“子”窗口的后面。
我希望它能走到最前面。
可能有些明显的地方是我做错了。要使父窗口具有焦点,该怎么办?我假设子dlg上有一些不应存在的属性,或者缺少某些属性
如果有帮助,我可以发布rc代码。
编辑:
这是两个对话框的.rc代码。第一个是大型机窗口。
第二个使用以下代码启动:
HistogramWindow *histwind;
histwind = new HistogramWindow(this);
histwind->Create(IDD_DIALOG_HISTOGRAM);
histwind->ShowWindow(SW_SHOW);
IDD_DTHISTOGRAMDLG_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "dtHistogramDlg"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,209,179,50,14,NOT WS_VISIBLE
PUSHBUTTON "Cancel",IDCANCEL,263,179,50,14,NOT WS_VISIBLE
CONTROL "",IDC_LIST_SYMBOL_SETS,"SysListView32",LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,60,50
END
IDD_DIALOG_HISTOGRAM DIALOGEX 0, 0, 317, 184
STYLE DS_SETFONT | DS_FIXEDSYS | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "Histogram"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,205,163,50,14,NOT WS_VISIBLE
PUSHBUTTON "Cancel",IDCANCEL,260,163,50,14,NOT WS_VISIBLE
CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME,7,7,20,20
END
最佳答案
您可能正在通过调用DoModal
使用模式对话框。
相反,您需要创建一个modeless dialog box。
为此,请使用CWnd::Create和CWnd::ShowWindow。
示例:
CMyDialog *m_pMyDialog = new CMyDialog(this);
m_pMyDialog->Create(CMyDialog::IDD);
m_pMyDialog->ShowWindow(SW_SHOW);