mfc - CDialog 到 CView

标签 mfc cdialog cview

所以我有一个基于 MFC 的应用程序,它主要派生自 CDialog,带有一些控件等。

由于某些原因,它需要托管在另一个应用程序中,使用基于CView 的容器类。

所以必须有某种方式...在容器类中使用 CDialog 托管这个东西,它期望这个东西是 CView

容器类对我关闭。它需要一个 CView,但我可以修改基于对话框的应用程序。

有没有一种简单的方法可以从基于CDialog 的方式迁移到基于CView 的方式,请问我需要看什么。我对 MFC 不是很熟练,这个问题听起来可能很模糊,但这就是我所拥有的。

任何帮助将不胜感激......谢谢。

最佳答案

您可以使用 CFormView。这是一个支持对话框资源模板的 View 。

有问题的代码是在 CFormView 中加载和提交数据。 View 通常由 CDocument 控制,它调用带有一些提示的 UpdateAllViews。

必须更改 OnOK、OnCancel 和 OnInitDalog 的对话框函数以适应 Doc/View 体系结构。

  • 将 OnInitDialog 代码移至 OnInitialUpdate,但请注意,在 SDI 应用程序中,OnInitialUpdate 可能会被调用多次。
  • OnOK 和 OnCancel 必须通过文档中的一些调用和函数来解决。

关于mfc - CDialog 到 CView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20046236/

相关文章:

c++ - MFC 对话框中是否有定义的控件列表或控件容器

windows - 如何创建用于绘图的子矩形设备上下文

mfc - 使用不受信任的格式字符串安全地调用 strftime

c++ - 获取当前时间()不返回正确的时间

c++ - 使列表控件中的单个项目可编辑(C++、MFC)

c++ - 如何计算编辑控件中的总数 - Visual MFC

c++ - MFC CDialog::创建失败

visual-studio-2010 - VC10 中的 CDialog 内存泄漏