版权声明:原创博文,转载请注明出处! https://blog.csdn.net/sunriver2000/article/details/84190893
多文档系列
问题
文档与视图绑定后,在文档中如何获取视图指针?
解决方法
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));