【问题标题】:Insert an UI into another MFC Dialog将 UI 插入另一个 MFC 对话框
【发布时间】:2011-05-26 18:53:22
【问题描述】:

我有一个 MFC 应用程序 (exe),在其主 UI 中包含两个窗格。此应用程序加载另一个也包含一个对话框的 DLL。如何以编程方式将定义的 Dialog 放入 DLL 中,并将其放入(内)MFC 应用程序的窗格中?问题不是如何以编程方式从 DLL 中检索对话框,而是如何将此对话框放在属于应用程序的一个 UI 窗格的“顶部”(内部、内部)?

我的目标是使用从 dll 中检索到的对话框自定义应用程序的 UI,并让用户感觉这些对话框都属于一个应用程序 UI。感谢您的任何提示。

【问题讨论】:

    标签: mfc dialog


    【解决方案1】:

    我有一些具有此功能的应用程序,通常带有用于在窗口之间切换的选项卡控件。

    首先,我在容器窗口中设置了一个对用户不可见的框架。框架只是对话框窗口所在位置的占位符。

    然后我将对话窗口的实例作为容器类中的全局变量,我将对话窗口创建为无模式窗口(使用Create(),而不是DoModal()),将窗口移动到相同的@987654323框架控件的@,并调用ShowWindow()显示窗口。

    【讨论】:

      【解决方案2】:

      我是否正确理解您不希望对话框显示为对话框,而是显示为另一个窗口的内容或窗格?

      也就是说,你想去掉对话框的标题栏,把对话框的内容嵌入到另一个窗口中,对吗?

      这是可能的。您需要创建没有标题栏的对话框(更改窗口样式),并确保将对话框的窗口创建为您希望内容所在窗口的子窗口。我可以进一步解释这一点,但我首先想知道我是否正确理解了你。

      【讨论】:

      • 谢谢。是的,这就是我想做的。我猜使用 SetParent 设置父/子?
      • WS_CHILDWINDOW 是关键。我认为 SetParent 不足以解决问题。您需要使用 CreateWindowEx() 创建窗口并确保将第三个参数设置为包含 WS_CHILDWINDOW。参数4和5可用于窗口的位置,参数6设置父级。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多