如何在对话框中使用IsKindOf函数
IsKindOf函数可以判断一个类指针指向的是否某个类的实例。
例子:
pView->IsKindOf(RUNTIME_CLASS(CTestView));
该例中,可以判断pView是否是CTestView类的实例。
但是对话框中,却不能直接使用IsKindOf函数,这里需要进行一下修改,具体如下:
1, 在.h文件中,做如下修改:
紧接着类的声明,添加DECLARE_DYNCREATE宏,下面的例子说明如何添加:
class CTestDlg : public CDialog
{
DECLARE_DYNCREATE(CTestDlg)
……
注意,行尾没有分号
2, 在.cpp文件中,做如下修改:
在构造函数前,添加IMPLEMENT_DYNCREATE宏,下面的例子说明如何添加:
IMPLEMENT_DYNCREATE(CTestDlg, CDialog)
注意,行尾没有分号
修改完成后,重新编译,您就可以使用IsKindOf了:
If(m_pDlg->IsKindOf(RUNTIME_CLASS(CTestDlg)))
{
…………
}

本文介绍如何在MFC对话框中启用IsKindOf函数,通过简单的两步操作即可实现对象类型的判断。首先需要在对话框类的.h文件中添加DECLARE_DYNCREATE宏声明,然后在.cpp文件中的构造函数前添加IMPLEMENT_DYNCREATE宏定义。

599

被折叠的 条评论
为什么被折叠?



