在 mfc 中打开另一个表单

Posted

技术标签:

【中文标题】在 mfc 中打开另一个表单【英文标题】:Opening another form in mfc 【发布时间】:2015-07-27 11:12:47 【问题描述】:

在用户单击 mfc 应用程序中的按钮后,我需要关闭当前表单对话框并打开另一个表单。基本上是为了我的学校项目申请。 我已经决定在我的项目中使用 Visual C++ 中的 mfc,并且我绝对没有关于该语言的指导。 我在 mfc 应用程序向导中选择了单个文档和 CFormView 类,并使用资源编辑器设计了两个表单,其中一个在程序启动时显示,我需要另一个打开并替换现有表单。 曾尝试在谷歌上搜索答案,但无法理解任何内容。我有基本的 c++ oop 知识,但我对 mfc 完全陌生。 我使用 Visual Studio 2013 Ultimate。

【问题讨论】:

【参考方案1】:

您并没有真正关闭当前对话框,您可以将其隐藏。所以这样做:

CCurrentDialig::OnBtnCliekted()

ShowWindow(this->m_hWnd, SW_HIDE);
COtherDialog dlg;
dlg.DoModal();

【讨论】:

我从资源编辑器创建了一个按钮点击事件,它有定义: void CIntefacedesignView::OnBnClickedButton11() .... 然后我输入了你建议的代码。 void CIntefacedesignView::OnBnClickedButton11() // TODO: 在此处添加您的控件通知处理程序代码 ShowWindow(this->m_hWnd, SW_HIDE); CFORMVIEW dlg; dlg.DoModal(); intellisense 将这个 SW_HIDE 和 CFORMVIEW 突出显示为错误,我不知道前两个,但我知道没有 CFORMVIEW 类,请告诉我在哪里声明它以及如何声明它。 SW_HIDE 在 Winuser.h.CFORMVIEW 中声明?可能是 CFormView,CFormView 是在 afxext.h 中声明的。

以上是关于在 mfc 中打开另一个表单的主要内容,如果未能解决你的问题,请参考以下文章

如何使用另一个表单上的打开文件对话框更改表单的背景图像

从另一个表单打开具有匹配 AutoID 的 MS Access 表单

从另一个表单刷新所有子表单

在php中不用表单怎样向另一个页面post参数并打开这个接值页面?

访问一次打开的一个表单

如何在 MFC 应用程序中托管 WPF 表单