MDI程序, 我自己添加了多个文档模板, 向导生成的代码可以在不同的文档间使用不同的菜单,我自己也添加了对应文档模板的工具栏, 想在子窗体激活或切换时更换主框架的工具栏,但不知子窗体切换主框架会响应什么消息, 请高人给予指点

解决方案 »

  1.   

    楼上的,我非常想结了这个贴子, 不过我试过切换文档不会触发该消息,如下代码从未执行过,设置断点也不能进去void CMainFrame::OnChildActivate()
    {
    CMDIFrameWnd::OnChildActivate(); // TODO: Add your message handler code here AfxMessageBox("Select Doc");

    }
      

  2.   

    afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);WM_MDIACTIVATE消息
      

  3.   

    The framework calls this member function for the child window being deactivated and the child window being activated.  
    afx_msg void OnMDIActivate(
       BOOL bActivate,
       CWnd* pActivateWnd,
       CWnd* pDeactivateWnd 
    );
     
      

  4.   


    //子框架窗口类CChildFrame类中加入WM_MDIACTIVATE消息处理
    //h头文件中加上
    afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);//cpp文件中
    BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
    //{{AFX_MSG_MAP(CChildFrame) //}}AFX_MSG_MAP
    ON_WM_MDIACTIVATE()
    END_MESSAGE_MAP()void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
    {
    if(pActivateWnd->GetSafeHwnd() && pDeactivateWnd->GetSafeHwnd())
    {
    AfxMessageBox(_T("Hello,World!"));
    }

    CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
    }
      

  5.   

    感谢VisualEleven,那个工能已经按照你的方法实现了,而且是我目前用到的最简单的方法,虽然我想直接在主框架中加代码,看来是没有可能实现的了,就此结贴吧