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

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

多文件系列

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

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

MFC多文件(三):文件與檢視繫結

 

問題

文件與檢視繫結後,在檢視中如何獲取文件指標?

 

新建MFC多文件工程(命名為Test),自動生成了一個CTestView類,其中就有包含成員函式GetDocument()。而當我們手動新增一個新的檢視類,比如CNaviMarkView,在這個CNaviView類裡就沒有這個GetDocument(),因此我們必須手動新增。

 

解決方法:

1、NaviMarkView.h標頭檔案。

#include "NaviMarkDoc.h"

class CNaviMarkView : public CFormView
{
DECLARE_DYNCREATE(CNaviMarkView)

public:
    //文件指標
	CNaviMarkDoc		*m_pDoc;
};

#ifndef _DEBUG 
inline CNaviMarkDoc * CNaviMarkView::GetDocument()
{ 
	return (CNaviMarkDoc*)m_pDocument; 
}
#endif

2、NaviMarkView.cpp原始檔。

#ifdef _DEBUG
CNaviMarkDoc * CNaviMarkView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CNaviMarkDoc)));
	return (CNaviMarkDoc*)m_pDocument;
}
#endif
#endif //_DEBUG

3、獲取指標。

void CNaviMarkView::OnInitialUpdate()
{
	m_pDoc = GetDocument();
}