什么';在MFC(VS2005)中显示非模态子对话框的正确方法是什么?

什么';在MFC(VS2005)中显示非模态子对话框的正确方法是什么?,mfc,Mfc,我希望能够为单独的控件组显示子对话框,而不是将所有内容都放在一个大对话框中。其思想是,这些不是像浮动工具栏一样的自由浮动子对话框,而是显示时没有标题栏,其位置锁定到父对话框。。。因此,当您拖动父对话框时,任何打开的子对话框也会被拖动 注意:这些子窗口不在父对话框内,它们通常会“粘”到父对话框的边缘 在MFC/VC++2005中,最好的方法是什么?为了进行测试,我目前有一个标准的基于MFC对话框的应用程序设置,带有CMainDlg,然后我创建了一个“小部件对话框”cWidgetDialog。到目前

我希望能够为单独的控件组显示子对话框,而不是将所有内容都放在一个大对话框中。其思想是,这些不是像浮动工具栏一样的自由浮动子对话框,而是显示时没有标题栏,其位置锁定到父对话框。。。因此,当您拖动父对话框时,任何打开的子对话框也会被拖动

注意:这些子窗口不在父对话框内,它们通常会“粘”到父对话框的边缘

在MFC/VC++2005中,最好的方法是什么?为了进行测试,我目前有一个标准的基于MFC对话框的应用程序设置,带有
CMainDlg
,然后我创建了一个“小部件对话框”
cWidgetDialog
。到目前为止,我已经有了一个成员变量
cwidgetdlgmaindlg::m_Widget
CMainDlg
上的一个按钮,其中有一个类似

CMainDlg::OnDisplayWidgetBtn()
{
 m_Widget.ShowWindow(TRUE);
}
当然,m_Widget还没有一个HWND设置,我正试图记住正确的方法来实现这一点?对于对话框控件,我可以使用DDX,但是子对话框呢

这是一种合理的方法,还是有更好、更自动化的方法

而不是把所有的东西都放在一个大盒子里 对话,我希望能够 显示单独的子对话框 控制组。这个想法就是这些 不是自由浮动的子对话框 类似于浮动工具栏,但将是 显示时没有标题栏,其 锁定到父级的位置 对话因此,当您拖动父对象时 对话框中任何打开的子对象也会被拖动

我想你可以选择多文档界面。您可以创建自己的对话框,添加文档模板,并将其用于适当的功能。当拖动父帧时,子帧将保持在一个主父帧内,并将沿着父帧移动。

尝试:

// IDD_WIDGET is the resource id for your widget dialog
m_Widget.Create(IDD_WIDGET, this);

不要忘记将style属性设置为
child

,您可以使用选项卡对话框。这里有一些示例代码。。。

显示良好,但无法延伸到父窗口之外。有一个简单的风格改变吗?实际上这是一个完全不同的问题。我会像这样提出它@约翰,是的,那是另一个故事。在该senario上,您必须创建无模式对话框并编写代码来重新定位它们。我不认为有一个简单的方法,因为MFC不支持这一点。这是一个新话题