我希望能够为不同的控件组显示子对话框,而不是将所有内容放在一个大对话框中。这个想法是这些不是自由浮动的子对话框,如浮动工具栏,但会显示没有标题栏,它们的位置锁定到父对话框...所以当您拖动父对话框时,任何打开的子项也会被拖动。 / p>
注意:这些子窗口不在父对话框内,它们通常会“粘在”它的边缘。
在MFC / VC ++ 2005中,最好的方法是什么?为了进行测试,我目前使用CMainDlg
设置了基于MFC Dialog的标准应用程序设置,然后我创建了一个“小部件对话框”CWidgetDlg
。到目前为止,我有一个成员变量CWidgetDlg MainDlg::m_Widget
和一个CMainDlg
上的按钮,其中包含一个像
CMainDlg::OnDisplayWidgetBtn()
{
m_Widget.ShowWindow(TRUE);
}
但是当然m_Widget没有设置HWND,我想要记住正确的方法吗?对于对话框控件,我可以使用DDX,但是对于子对话框呢?
这是一种合理的方法,还是有更好的,更自动化的方式?
答案 0 :(得分:3)
尝试:
// IDD_WIDGET is the resource id for your widget dialog
m_Widget.Create(IDD_WIDGET, this);
不要忘记将样式属性设置为child
。
答案 1 :(得分:0)
而不是把一切都放在一个大的 对话,我正在寻找能够 显示单独的对话框 控制组。这个想法就是这些 不是自由浮动的儿童对话 像浮动工具栏,但会 显示没有标题栏,他们的 位置锁定到父级 对话框...以便拖动父级 对话框也会拖动任何打开的子项。
我想你可以选择多文档界面。您可以创建自己的对话框,添加文档模板并使用它们以获得适当的功能。子项将保留在一个主父框架内,并且只要拖动父项,它就会沿着父项移动。
答案 2 :(得分:0)
您可以使用标签对话框。这里有一些示例代码...... http://www.codeproject.com/KB/dialog/embedded_dialog.aspx