如何在对话框中使用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)))
{
…………
}