在一个对话框中如何显示另一个对话框?

li_guang_hua 2005-11-02 08:54:19
一个对话框1(假设为CDlg1类)因调用了ShowWindow()函数被隐藏起来了。而桌面上显示了另一个对话框2(假设为CDlg2类)。我欲做的事情是:在对话框2消失的同时显示出对话框1。
为此,我在CDlg2类中添加一个变量HWND m_dlg1hwnd,并将其赋值为对话框1的窗口句柄。我在CDlg2类的OnOK()函数中调用::ShowWindow(m_dlg1hwnd,SW_SHOW);可以达到我的目的,可我又想万一客户没按“确定”按钮,而直接按了“关闭”按钮,我的目的岂不落空。于是我将::ShowWindow(m_dlg1hwnd,SW_SHOW)移到CDlg2类的OnClose()函数中,可这时对话框1却显示不出来,不知是什么原因,请高手解答。谢谢!!!
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_guang_hua 2005-11-03
  • 打赏
  • 举报
回复
谢谢!!!
li_guang_hua 2005-11-03
  • 打赏
  • 举报
回复
有理,其实我的第一种方法就是这样,现在是彻底理解了。
laofang 2005-11-02
  • 打赏
  • 举报
回复
在显示对话框2的DoModal()后面,再显示对话框1就行了

这样子:
void OnButtonShowDlg2()
{
//...
CDlg2 dlg2;
dlg2.DoModal(); // 此处显示对话框2

// 此时对话框2已关闭
::ShowWindow(m_dlg1hwnd,SW_SHOW);

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧