1. 程式人生 > >MFC多文件(二):文件中獲取檢視指標

MFC多文件(二):文件中獲取檢視指標

多文件系列

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