MFC多文档(二):文档中获取视图指针

版权声明:原创博文,转载请注明出处! https://blog.csdn.net/sunriver2000/article/details/84190893

多文档系列

MFC多文档(一):视图中获取文档指针

MFC多文档(二):文档中获取视图指针

MFC多文档(三):文档与视图绑定

问题

文档与视图绑定后,在文档中如何获取视图指针?

解决方法

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));

猜你喜欢

转载自blog.csdn.net/sunriver2000/article/details/84190893