问题
文档与视图绑定后,在视图中如何获取文档指针?
新建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();
}
本文介绍在MFC多文档界面中,如何为自定义视图类添加获取文档指针的方法。通过在视图类中声明文档指针,并在OnInitialUpdate函数中调用GetDocument()函数进行初始化,实现视图与文档的绑定。
1万+

被折叠的 条评论
为什么被折叠?



