- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OnUpdate
的第三个参数是指向CObject
的指针。该指针必须在实现其自己的 OnUpdate
的 View 类中向下转型。检查转换是否成功的最佳方法是什么?使用 CObject::IsKindOf
还是 dynamic_cast
?在MFC项目中使用RTTI可以吗?
最佳答案
如果您使用向导创建了您的 View ,那么它将在您的 View 类的头文件中放置一个 DECLARE_DYNCREATE。如果您手动创建它,我会确保它在您的 View 头文件的类定义中有一个 DECLARE_DYNCREATE(或者至少有一个 DECLARE_DYNAMIC 或 DECLARE_SERIAL——DECLARE_SERIAL 对于 View 类来说通常是矫枉过正)。
然后,当您想要向下转换时,使用 DYNAMIC_DOWNCAST 宏并在返回时测试非 NULL。
CView* pView = DYNAMIC_DOWNCAST(CView, pObject);//是一种用法
不要听信不使用 MFC 宏的建议,因为它不可移植...如果您正在编写 CView 派生类,它已经不可移植了——除非您使用像 Wind/U 这样的工具包,然后DYNAMIC_DOWNCAST 也将是可移植的。
关于c++ - 如何在派生 View 类中实现 CView::OnUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634317/
所以我有一个基于 MFC 的应用程序,它主要派生自 CDialog,带有一些控件等。 由于某些原因,它需要托管在另一个应用程序中,使用基于CView 的容器类。 所以必须有某种方式...在容器类中使用
我在 MDI 应用程序中打开了一个 MFC CDocument 和关联的 CView。我想分离并关闭 View (和关联的框架),同时保持文档打开。查看 MFC 代码以了解它是如何做到的,在 CDoc
我有一个 CFormView 和一个子 CListCtrl 控件。我能应付加速器事件,如 Ctrl+C、Ctrl+V ... 在 CFormView 中没有问题,通过定义以下消息处理程序: O
通过我的 MFC 应用程序,我能够使用 CView 类在屏幕上打印我的 CDocument。基本上,我使用 CDC 类在屏幕上编写文本和绘制多边形以提供我的文档的 View 表示。 现在假设我想在 M
我有一个派生自调用 OnFilePrint() 的 CView 的类,但无论我在打印对话框中输入多少拷贝,似乎都只会打印一份拷贝。这是一个已知错误,还是我做错了什么? 我可能会创建自己的 CPrint
我有一个 CView,我一直在上面画东西,效果很好。然后我意识到我需要向我的 CView 添加一些控件,如文本框和组合框。所以我试图将我的 CView 转换为没有默认构造函数的 CFormView。但
我需要将 CView 派生类放入 CDockablePane 中。某处有任何代码示例,或者有人可以提供这样的代码吗? 我尝试过的: 显然应该很简单,我在网上找到了诸如“只需创建 View 并将其父项设
根据这个 stackoverflow 问题: What is the correct way to programmatically quit an MFC application? 我正在使用 Af
我正在开发一个 View 继承 CFormView 的 SDI 项目。我正在尝试覆盖 CView::OnUpdate ,但编译器会这样提示: 'CMyFormView::OnUpdate' : 'vi
OnUpdate 的第三个参数是指向CObject 的指针。该指针必须在实现其自己的 OnUpdate 的 View 类中向下转型。检查转换是否成功的最佳方法是什么?使用 CObject::IsKin
所以我想采用我正在处理的当前程序并使所有内部窗口都可以停靠。唯一的问题是它们扩展了一个名为 CFBView 的类,该类扩展了 CView。如果我也扩展 CDockablePane,它将导致无法正确编译
当使用 VS2008(加上功能包)的 AppWizard 创建具有“Visual Studio”风格的 MDI 应用程序时,CMainFrame 类获得一个方法 CreateDockingWindow
我在 mfc 中有一个 cdialog,我想将它托管在 cview 中,因此当您单击另一个 cview 时,它会出现在顶部,这与普通对话框不同。 我尝试将 cview 设置为对话框的父级,但对话框没有
我的 c++ MFC MDI 应用程序在其 View 中显示工程图。将 CView 派生对象转储到 PDF 文件的好方法是什么?您可以建议哪些图书馆(不是免费的)? 我研究了一些图书馆,比如 Cair
我有一个使用 C++、MFC 和 C++6.0 的大型图形程序。 我需要它在不提示用户输入打印机设置和文件名的情况下打印到 PDF。 我用 CView::OnPrint()使用 Microsoft P
我使用 Visual Studio 2015,使用 MFC 多文档应用程序(功能区样式)。我正在尝试将 png 图像添加到 CView 并使用 WM_TIMER 制作幻灯片。首先,我出于相同的目的制作
我有一个相当简单的 MFC 应用程序,它只定义了自己的 CDocument、CView 和 CFrameWnd 子类,并通过CSingleDocTemplate 在 View 的树中显示文档的只读内容
我是一名优秀的程序员,十分优秀!