【MFC多文档】01:视图中获取文档指针

本文介绍在MFC多文档界面中,如何为自定义视图类添加获取文档指针的方法。通过在视图类中声明文档指针,并在OnInitialUpdate函数中调用GetDocument()函数进行初始化,实现视图与文档的绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

文档与视图绑定后,在视图中如何获取文档指针?

 

新建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();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值