多文档视图间切换消息处理 MFC

作者最近在开发多文档视图程序,需要在视图间切换时处理激活视图数据的更新,开始用OnActivateView虚函数,但其在视图内容更新后触发,不符合要求,查找资料找到如下解决方法:

       1、在CChildFrame类中添加WM_MDIACTIVATE消息处理即OnMDIActivate函数;

       2、  在函数中添加如下代码:

  if(bActivate)
    {
        CDocument * pDoc = GetActiveDocument();
        POSITION pos = pDoc->GetFirstViewPosition();
        CView* pView = NULL;

        while(pos != NULL)
        {
            pView = pDoc->GetNextView(pos);
            if(!pView->IsTopParentActive())           // 视图是否处于活动状态
                continue;

            if(pView->IsKindOf( RUNTIME_CLASS(CPrintDocumentsView) ))
            {
                ::PostMessage(pView->m_hWnd, WM_SAVEDATABASE, 3, NULL);   // 向活动状态的视图发送消息
            }
        }
    }


当激活视图时,就会向视图发送自定义消息,进行相应处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值