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