代码之家  ›  专栏  ›  技术社区  ›  Tim

如何在大型机中显示cformview?

  •  0
  • Tim  · 技术社区  · 15 年前

    我创建了一个没有doc/view支持的sdi mfc应用程序。mfc模板给了我一个带有空白窗口(和菜单等)的应用程序。

    我想在主窗口上显示cformview对象。(基于在gui编辑器中生成的dlg)

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

    • 这种观点永远不会改变。它将有一个列表框控件,仅此而已。如何显示新的窗体视图?

    • 另外,如何使一个带有一个控件的浮动窗口也显示出来?(dlg box和domodal()在这里对我不起作用。)

    1 回复  |  直到 15 年前
        1
  •  1
  •   John Knoeller    15 年前
    • 让您的CFormView使用WS-U子样式
    • 将其创建为无模式对话框,并将应用程序窗口作为父窗口
    • 调整其大小以适应父对象的工作区,或调整父对象大小以适应它。

    ws_子样式不是对话框模板的默认样式,但您可以添加它。 这将导致对话框显示在您创建主框架窗口时的工作区内。

    您可能还想将呼叫添加到 IsDialogMessage() 给你的信息泵。这需要使tab键在对话框中的行为符合您的预期。

    编辑---- 我不是一个mfc程序员,所以我只能猜测你将如何在mfc中进行这项工作。

    假设您仍然有对话框模板,所以您可以进入.rc文件 删除ws_弹出窗口并将ws_子样式添加到模板声明中。这样地:

    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() .