在主对话框中嵌入对话框并通过 MFC 中的按钮单击进行切换

2023-11-24

我有一个如下的设计:

enter image description here

所以基本上,我想在应用程序主对话框中嵌入三个对话框并在它们之间切换,对于每个按钮单击,即按钮 1 将显示对话框 1 ,按钮 2 将隐藏对话框 1 并显示对话框 2 .. 等等。 每个对话框都有不同的设计和功能。

我尝试使用 CPropertySheet 类来添加页面,但它的 GUI 不同。它可以选择使用下一步/后退按钮或选项卡控件来导航对话框。 没有一个符合我的要求。

所以我想知道MFC中是否可以有这样的设计?如果是的话怎么办?我应该使用哪个类/控件。

任何帮助将不胜感激。


您可以做的是使用普通的 CDialog 类,向其中添加按钮,并创建一个框架/矩形作为嵌入对话框显示位置的占位符。以下代码将创建并定位嵌入的对话框。

CRect rect;
CWnd *pHost = GetDlgItem(ID_OF_YOUR_FRAME_RECT);
pHost->GetWindowRect(&rect);
ScreenToClient(&rect);
pDialog->Create(ID_OF_YOUR_DIALOG, this);
pDialog->MoveWindow(&rect);
pDialog->ShowWindow(SW_SHOW);

单击按钮时,您可以隐藏先前显示的对话框 (SW_HIDE) 并使用 ShowWindow(...) 显示所选对话框 (SW_SHOW)。

如果您在添加资源编辑器中使用 IDD_FORMVIEW 样式创建嵌入式对话框,它将具有正确的嵌入样式。

另一种选择可能是使用嵌入式 PropertySheet 并隐藏选项卡行并以编程方式更改按钮单击时的选项卡。我只是发现它的边界、定位、验证等方面过于模糊,不符合我的喜好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在主对话框中嵌入对话框并通过 MFC 中的按钮单击进行切换 的相关文章

随机推荐