gpt4 book ai didi

c++ - 如何在大型机中显示 CFormView?

转载 作者:行者123 更新时间:2023-11-28 08:31:14 25 4
gpt4 key购买 nike

我创建了一个没有文档/ View 支持的 SDI MFC 应用程序。 MFC 模板为我提供了一个带有空白窗口(和菜单等)的应用程序

我想在那个主窗口上显示我的 CFormView 对象。 (基于gui编辑器中制作的一个dlg)

我该怎么做? CreateWindow 和 showwindow 似乎并不是所需要的全部。我找到的所有网页似乎都在谈论 MDI 和其他不在我的应用程序中的内容。

  • 这个观点永远不会改变。它将有一个列表框控件,仅此而已。如何让新的表单 View 出现?

  • 此外,如何让一个带有一个控件的 float 窗口也出现? (DLG 框和 DoModal() 在这里对我不起作用。)

最佳答案

  • 为您的 CFormView 提供 WS_CHILD 样式
  • 将其创建为以应用程序窗口为父窗口的无模式对话框
  • 调整它的大小以适应父级的客户区,或者调整父级的大小以适应它。

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

无模式对话框是在 Win32 中通过使用 CreateDialog 而不是 DialogBox 创建的,在MFC 使用 Create() 而不是 DoModal()

关于c++ - 如何在大型机中显示 CFormView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com