mdi toolbar动态切换-MFC 多文档程序 怎样 动态切换ToolBar

问题描述

MFC 多文档程序 怎样 动态切换ToolBar

我的应用场合是这样的:
VS10创建的MDI 多文档程序,有2个文档模板,分别对应View1 和View2 两种视图,View1对应工具条ToolBar1 ,View2对应工具条Toolbar2。
我想实现:View1 激活时,显示ToolBar1; View2激活时,显示ToolBar2。

目前,我在CChildFrame中响应 WM____CHILDACTIVATE 消息,代码如下:

void CChildFrame::OnChildActivate()
{
    CMDIChildWndEx::OnChildActivate();

    // TODO: Add your message handler code here
    CView* pView = GetActiveView();
    if(pView)
    {
        CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
        if(pView->IsKindOf(RUNTIME_CLASS(CWtvView)))
            pMainFrame->m_wtvToolBar.ShowPane(TRUE, FALSE, FALSE);
        else
            pMainFrame->m_wtvToolBar.ShowPane(FALSE, FALSE, FALSE);

    }
}

这个代码在不同的文档模板间,或者是同一文档模板的不同视图间切换是没问题的,但是当 用一个文档模板创建2个视图后,关闭1个视图时, 工具条却隐藏了。

请教各位高手, 要实现我想要的现象,该怎么做?

解决方案

切换多视图(mfc单文档程序)
MFC多文档程序如何关闭子窗体, MDIDestroy();
在单文档程序中动态切换多个窗体(附图)

时间: 2025-01-27 04:01:23

mdi toolbar动态切换-MFC 多文档程序 怎样 动态切换ToolBar的相关文章

MFC单文档程序编程 最小化托盘对话框没有隐藏而是以标题栏的形式显示的呢?

问题描述 MFC单文档程序编程 最小化托盘对话框没有隐藏而是以标题栏的形式显示的呢? MFC单文档程序编程 最小化托盘某个对话框的时候 为什么对话框没有隐藏而是以标题栏的形式显示的呢 void CBeginningTimeDlg::OnSysCommand(UINT nID, LPARAM lParam) { // TODO: Add your message handler code here and/or call default CWnd *pMainFrameWnd , *pSettin

在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量?

问题描述 在MFC单文档程序中,如何在子对话框类中访问视类中的一个变量? 如题,小弟最近遇到一个问题,新建一个单文档程序,并在其中引入对话框资源.我想在视类的OnDraw()函数中通过响应视类的一个变量的变化来改变视类窗口中图形的状态,而该视类变量的变化是由对话框中的一个控件控制的,这个控件是由旋钮控件和编辑控件捆绑而成的.在网上看了一些资料,试了其中的一些方法,都没能成功.论坛中高手众多,想请热心的高手们给个解决方法,在此先谢过了!能给个相似的例子的更好! 解决方案 要么你把那个变量定义成静态

mfc多文档程序点击文档选项卡激活什么事件

问题描述 mfc多文档程序点击文档选项卡激活什么事件 mfc多文档程序打开了多个文件,每个视图是一个选项卡,应该说每个文档对应一个选项卡,就是系统自动生成的那种样式.现在我点击选项卡1,请问激活哪个事件?我试了响应CView的OnActivate,不行,没反应........... 解决方案 http://bbs.csdn.net/topics/391047718 主框架窗口CMainFrame类添加处理AFX_WM_CHANGING_ACTIVE_TAB. mainfrm.h中:afx_msg

mfc多文档程序CMainFrm::OnActivateTabChanged()获取文档错误

问题描述 mfc多文档程序CMainFrm::OnActivateTabChanged()获取文档错误 点击选项卡不就是触发这个事件OnActivateTabChanged么?我在里面 this->GetActiveDocument(); 程序会崩掉 解决方案 MFC多文档程序可以美化到什么程度?基于MFC文档/视/框架程序之利剑

MFC单文档如何用.BMP位图重绘非客户区

问题描述 MFC单文档如何用.BMP位图重绘非客户区 20C 功能:新建一个MFC单文档程序,微软原生的边框背景不好看.想用一张.bmp位图重绘非客户区. 困难:我在OnNcPaint()加载.bmp位图后,全部都遮盖住了,然后鼠标点击屏幕任一处,边框就还原为微软默认的了.何解? 请各位前辈多多指点,赠送20个C币,表示衷心的感谢! 解决方案 参考:http://blog.csdn.net/shuilan0066/article/details/6635458http://blog.csdn.n

mfc-MFC单文档程序如何实现背景行线

问题描述 MFC单文档程序如何实现背景行线 我想写一个单文档的字处理程序,VIEW类继承的是CRICHEDITVIEW,想做出背景行线但不知道如何下手,求高手赐教! 解决方案 在MFC单文档应用程序中删除列表视图的列MFC单文档(SDI)全屏程序的实现 解决方案二: 需要重绘才能实现,如果你希望最简单的就用DHTMLEdit,它基于html,加上一个背景就有行线了.类似outlook信纸的效果.

mfc-MFC多文档程序显示对话框(属性为child),怎么实现对话框鼠标单击响应函数

问题描述 MFC多文档程序显示对话框(属性为child),怎么实现对话框鼠标单击响应函数 MFC界面上显示对话框(对话框属性为child),现在想添加响应函数,如何实现单击对话框,弹出新对话框. 求技术大牛指点! 解决方案 用ClassWizard映射消息,响应函数 创建一个CDialog类,如TestDlg 函数内定义 TestDlg dlg;显示新的对话框 dlg.DoModal();

mfc-MFC多文档程序怎么用文档指针创建新的视图

问题描述 MFC多文档程序怎么用文档指针创建新的视图 多文档程序最上面有一个系统的新建.打开.保存等按钮,我想在mainfrm里一个按钮重新"实现"打开这个功能,我可以获得文档的指针,但是怎么用获得的这个指针来为它创建一个视图呢 解决方案 如何在MFC单文档中创建多视图如何在MFC单文档中创建多视图MFC多文档程序启动时一个文档创建两个视图 解决方案二: 参考打开的代码CWinApp::OpenDocumentFile

mfc-MFC多文档程序,专门的计算处理用的函数应放在哪?

问题描述 MFC多文档程序,专门的计算处理用的函数应放在哪? 我的MFC多文档程序,有一些算法.计算.处理数据的一些函数.传入的参数就是普通的CString.int什么的.和视图.文档什么的无关.我想到的是两种,第一种,专门建一个类,将这些函数放在新类中,加static声明:第二种就是放在doc类中,调用的时候就GetDocument获取指针再调用. 从开发的规范性来讲,怎样做显得不low? 解决方案 MFC多文档常用函数