MFC多文件(一):檢視中獲取文件指標
阿新 • • 發佈:2018-12-16
多文件系列
問題
文件與檢視繫結後,在檢視中如何獲取文件指標?
新建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(); }