问题
文档与视图绑定后,在文档中如何获取视图指针?
解决方法
1、NaviMarkDoc.h头文件
class CNaviMarkDoc : public CDocument
{
DECLARE_DYNCREATE(CNaviMarkDoc)
public:
CView* GetView(CRuntimeClass* pClass);
}
2、NaviMarkDoc.cpp源文件。
CView* CNaviMarkDoc::GetView(CRuntimeClass* pClass)
{
CView *pView;
POSITION pos = NULL;
pos = GetFirstViewPosition();
while (pos != NULL)
{
pView = GetNextView(pos);
if (!pView->IsKindOf(pClass))
break;
}
if (!pView->IsKindOf(pClass))
{
return NULL;
}
return pView;
}
3、调用
在MainFrm.h中定义m_pNaviMarkDoc指针或者指针数组。
#include "NaviMarkDoc.h"
#include "NaviMarkView.h"
CDocument **m_pNaviMarkDoc;
在MainFrm.cpp中调用视图指针。
CNaviMarkView *pView;
pView = (CNaviMarkView *)((CNaviMarkDoc *)m_pNaviMarkDoc[am.nId])->GetView(RUNTIME_CLASS(CNaviMarkView));
本文详细介绍了在MFC框架下,如何在文档中获取与之绑定的视图指针。通过具体实现代码,展示了从文档类中调用特定函数来遍历并找到指定类型的视图对象的过程。
4615





