我创建了一个没有doc / view支持的SDI MFC应用程序。 MFC模板为我提供了一个带有空白窗口的应用程序(和菜单等)
我想在该主窗口上显示我的CFormView对象。 (根据gui编辑器制作的dlg)
我该怎么做? CreateWindow和showwindow似乎并不是所有需要的。我找到的所有网页似乎都在讨论MDI以及我应用中没有的其他内容。
这种观点永远不会改变。它将有一个列表框控件,就是这样。如何显示新的表单视图?
此外,如何在其上显示一个带有一个控件的浮动窗口? (DLG box和DoModal()在这里对我不起作用。)
答案 0 :(得分:1)
WS_CHILD样式不是对话框模板的默认样式,但您可以添加它。 这将导致对话框在创建它时显示在主框架窗口的客户区域内。
您可能还想将IsDialogMessage()
的来电添加到消息泵。这需要让TAB键按照您在对话框中的预期方式运行。
编辑---- 我不是MFC程序员,所以我只能猜测你将如何在MFC中实现这一点。
据推测,您仍然有对话框模板,因此您将进入.RC文件 并删除WS_POPUP并将WS_CHILD样式添加到模板声明中。像这样:
IDD_WHATEVER DIALOG DISCARDABLE 0, 0, 275, 217
STYLE DS_MODALFRAME | DS_3DLOOK | WS_CHILD | WS_VISIBLE
CAPTION "General"
FONT 8, "MS Sans Serif"
BEGIN
// etc
END
使用CreateDialog
而不是DialogBox
在Win32中创建无模式对话框
MFC使用Create()
而不是DoModal()
。