MDI和视图更改检测 [英] MDI and view change detection

查看:82
本文介绍了MDI和视图更改检测的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



Any1知道如何在MDI应用程序中检测文档/视图更改.我有MDI应用程序,该应用程序具有几种diff类型的文档/视图,每种类型都具有diff视图功能.我需要检测视图何时更改(用户可以通过MDI视图选项卡ctrl选择另一个),以便可以将适当的命令发送到连接的单独设备(某些用于停用的视图,另一种用于激活的视图).

谢谢
Sasa

Hi,

Any1 know how to detect document/view change in MDI application. I have MDI app that have several diff types of document/views, each with diff view capabilities. I need to detect when view changes (user select another via MDI view tab ctrl) so I can send appropriate commands to separate devices attached (some for deactivated view, another for activated view).

Thanks
Sasa

推荐答案



我发现并使用的一种解决方案是重写ChildFrame的OnMDIActivate ...


void CChildFrame :: OnMDIActivate(BOOL bActivate,CWnd * pActivateWnd,CWnd * pDeactivateWnd)
{
CMDIChildWndEx :: OnMDIActivate(bActivate,pActivateWnd,pDeactivateWnd);

CWnd * pWnd = GetDlgItem(AFX_IDW_PANE_FIRST);
if(pWnd-> IsKindOf(RUNTIME_CLASS(CNeedeViewType)))
{
if(!bActivate)
{
//做某事
}
其他
{
//做某事
}
}
}


如果您想更好/更精明,请提出建议...
Hi,

one solution I found and using is overriding OnMDIActivate of ChildFrame...


void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMDIChildWndEx::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);

CWnd* pWnd = GetDlgItem(AFX_IDW_PANE_FIRST);
if( pWnd->IsKindOf( RUNTIME_CLASS(CNeedeViewType) ) )
{
if( !bActivate )
{
// Do something
}
else
{
// do something
}
}
}


If you know for better/nicer, please advice...


您好,

我发现并使用的一种解决方案是重写ChildFrame的OnMDIActivate ...


void CChildFrame :: OnMDIActivate(BOOL bActivate,CWnd * pActivateWnd,CWnd * pDeactivateWnd)
{
CMDIChildWndEx :: OnMDIActivate(bActivate,pActivateWnd,pDeactivateWnd);

CWnd * pWnd = GetDlgItem(AFX_IDW_PANE_FIRST);
if(pWnd-> IsKindOf(RUNTIME_CLASS(CNeedeViewType)))
{
if(!bActivate)
{
//做某事
}
其他
{
//做某事
}
}
}
Hi,

one solution I found and using is overriding OnMDIActivate of ChildFrame...


void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMDIChildWndEx::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);

CWnd* pWnd = GetDlgItem(AFX_IDW_PANE_FIRST);
if( pWnd->IsKindOf( RUNTIME_CLASS(CNeedeViewType) ) )
{
if( !bActivate )
{
// Do something
}
else
{
// do something
}
}
}


这篇关于MDI和视图更改检测的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆