zoukankan      html  css  js  c++  java
  • MFC文档应用程序CToolBar:设置两个工具条并列停靠到同一条边上 转

    转自:http://blog.csdn.net/panshiqu/article/details/9369891#

    将多个工具条同时并列停靠在某窗口的某一条边上。对于这种停靠方法,利用上述工具条控制函数DockControlBar的lpRect参数,通过控制工具条的停靠矩形区域的方法可以实现

    1:在MainFrm.h中增加如下成员函数定义

    // 增加  
    public:  
        void DockControlBarLeftOf(CToolBar* bar, CToolBar* leftof);  、
    2:在MainFrm.cpp中实现成员函数
    void CMainFrame::DockControlBarLeftOf(CToolBar* bar, CToolBar* leftof)  
    {  
        //设置工具条并列停靠到同一条边上  
        CRect rect;  
        DWORD dw;  
        UINT n=0;  
        RecalcLayout(); //重新显示  
        leftof->GetWindowRect(rect);  
        rect.OffsetRect(1, 0);  
        dw=leftof->GetBarStyle();  
        n=(dw&CBRS_ALIGN_TOP)?AFX_IDW_DOCKBAR_TOP:n;  
        n=(dw&CBRS_ALIGN_BOTTOM&&n==0)?AFX_IDW_DOCKBAR_BOTTOM:n;  
        n=(dw&CBRS_ALIGN_LEFT&&n==0)?AFX_IDW_DOCKBAR_LEFT:n;  
        n=(dw&CBRS_ALIGN_RIGHT&&n==0)?AFX_IDW_DOCKBAR_RIGHT:n;  
        DockControlBar(bar,n,&rect);  
    }  
    

      

    在这个函数中应注意对RecalcLayout()函数和OffsetRect()函数的调用,前一个函数用来重新显示被调整的客户区和工具条,后一个函数用来重新确定矩形区域,这相当于利用鼠标将第二个工具条窗口拖动到前一个工具条上然后释放。

    3:就是调用上面这个函数,假设你新建的toolbar变量是m_wndToolBarNav,那么就用下面的程序替换原来MainFrm.cpp中的片段

    原:

    // TODO: 如果不需要可停靠工具栏,则删除这三行  
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);  
    EnableDocking(CBRS_ALIGN_ANY);  
    DockControlBar(&m_wndToolBar);
    
    替换后:
    // TODO: 如果不需要可停靠工具栏,则删除这三行  
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);  
    m_wndToolBarNav.EnableDocking(CBRS_ALIGN_ANY);  
    EnableDocking(CBRS_ALIGN_ANY);  
    DockControlBar(&m_wndToolBar);  
    DockControlBarLeftOf(&m_wndToolBarNav,&m_wndToolBar);//主要是这里
    
    以上三个步骤后,就可以去看效果啦
  • 相关阅读:
    mfc窗口,父窗口parentwindow,所有者窗口ownerwindow 区别
    svn冲突问题详解 SVN版本冲突解决详解
    input的on(‘input’,function(0{})事件
    input 输入框两种改变事件的方式
    JSON格式
    AJAX的dataType问题
    什么是跨域请求?
    JSON.parse()和JSON.stringify()使用介绍
    .replace(/-/g,"/")的用法
    docker 实践(一)
  • 原文地址:https://www.cnblogs.com/wolfplan/p/6605503.html
Copyright © 2011-2022 走看看