MFC SDI获取视图指针

1 篇文章 0 订阅

上周查了好久SDI 单文档多视图方面的资料,怎么获取指定视图指针让我相当苦恼,最后终于找到了方法;

在MainFrm.h里面添加一个方法:

CView* GetView(CRuntimeClass *pClass);

在MainFrm.cpp 实现:

CView* CMainFrame::GetView(CRuntimeClass *pClass)
{
	POSITION   POS;   
	POS = AfxGetApp()->GetFirstDocTemplatePosition();   
	CDocTemplate*   pDocTemplate = AfxGetApp()->GetNextDocTemplate(POS);   
	POS = pDocTemplate->GetFirstDocPosition();   
	CDocument*   pDoc=pDocTemplate->GetNextDoc(POS);   

	POS = pDoc->GetFirstViewPosition();
	CView*   pView;
	while (POS != NULL){
		pView=(CView*)pDoc->GetNextView(POS);
		//判断当前获取的视图是否为目标视图
		if(pView->IsKindOf(pClass))break;
	}
	if( pView->IsKindOf(pClass) == FALSE )return NULL;
	return pView;
}

可以调用你的目标视图,调用,如下:

(CXX_View*) pView = ((CMainFrame*)AfxGetMainWnd())->GetView(RUNTIME_CLASS(CXX_View));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值