VS2013中,建立MFC对话框,弹出的子窗口有时会在桌面,并没有在当前页面?

就是说点击父窗口后,弹出子窗口,按理说应该会在父窗口之上,确实也是这样,但有时候会出现,子窗口出现在桌面上并没有在最前页面???求大神指教原因何在?... 就是说点击父窗口后,弹出子窗口,按理说应该会在父窗口之上,确实也是这样,但有时候会出现,子窗口出现在桌面上并没有在最前页面???求大神指教原因何在? 展开
 我来答
amote258
2014-06-06 · TA获得超过1964个赞
知道小有建树答主
回答量:1101
采纳率:0%
帮助的人:941万
展开全部
你没有写明白 是通过什么消息处理的弹出 子窗口,
这种情况 可能你弹出的子窗口是 非模态对话框..非模态对话框可以不输入焦点.
模态对话框 应该通过下面方式弹出
CDialog dlg;//定义一个对话框对象
dlg.DoModal();//弹出对话框
模态子对话框一旦弹出,父对话框就不能获得焦点,也没法切换, 直到 子对话框关闭.
非模态对话框应该通过下面方式弹出
CTestDlg *dlg=new CTestDlg;//new一个对象
dlg->Create(IDD_TEST_DLG,NULL);//创建
dlg->ShowWindow(SW_SHOW);//显示
模态子对话框的输入焦点可以跟父对话框切换.
追问
我是通过模态对话框弹出的。而且弹出后,要隐藏父窗口。
CGameDlog gameDlg;
this->ShowWindow(SW_HIDE);
UpdateData();
gameDlg.m_model = m_model;
gameDlg.DoModal();
this->ShowWindow(SW_NORMAL);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式