VS2008/2010 CDockablePane类的使用

来源:互联网 发布:开淘宝店要多少钱押金 编辑:程序博客网 时间:2024/05/22 05:32
1、CDockablePane说明
        CDockablePane是一个通用窗口容器,它主要有两个用途:在一个框架中悬浮或者停靠窗口。在复杂布局的应用程序中,它可以显示或隐藏所装载的窗口,为应用程序窗口提供额外的空间。
        可以将一个窗格停靠在主框架窗口;可以切换窗格自动隐藏模式;可以附加一个窗格到一个选项卡式窗口中;

2、设置CDockablePane最小尺寸
        调用CDockablePane::SetMinSize即可设置最小宽度和高度。

3、让Output窗口在下方充满整个窗口

        默认情况下生成的SDI窗口中的Output窗口在下方不是充满整个窗口的。要实现如下的充满的效果:


 
        经过的代码的比对,发现哪个先Dock哪个就在对应的方向上充满区域,所以将output窗口先Dock即可,代码如下:
 
4、屏蔽掉pane右上角的几个按钮
        即将 这三个小按钮去掉。
        (1) 去掉关闭按钮
        在CDockingPane的派生类中,重写下列方法即可:
    virtual BOOL FloatPane(CRect rectFloat, AFX_DOCK_METHOD dockMethod = DM_UNKNOWN, bool bShow = true) { return FALSE; }    virtual BOOL CanFloat() const { return FALSE; }    virtual BOOL CanBeClosed() const { return FALSE; }
       (2) 去掉自动掩藏按钮
       在CMainFrame::OnCreate()中将下面的一句代码注释掉即可:
      //EnableAutoHidePanes(CBRS_ALIGN_ANY);
       (3) 去掉下拉箭头按钮
       在CMainFrame::OnCreate()中将下面的一句代码添加上即可:
     GetDockingManager()->EnableDockSiteMenu(FALSE);
      (4) Pane Tab中关闭按钮的去除
      Pane Tab其实也是一个CDockingPane,查看CDockingPane及基类的源码得知,Pane Tab右上角的关闭按钮与AFX_CBRS_CLOSE风格对应,将AFX_CBRS_CLOSE风格去掉即可。继续查看代码,有GetControlBarStyle和SetControlBarStyle函数,所以想法可行,如下所示:
    CDockablePane* pTabbedBar = NULL;    m_wndClassView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);    DWORD dwStyle = pTabbedBar->GetControlBarStyle();    pTabbedBar->SetControlBarStyle( dwStyle & ~AFX_CBRS_CLOSE); // 去除AFX_CBRS_CLOSE风格    m_wndProperties.EnableDocking(CBRS_ALIGN_ANY);

0 0
原创粉丝点击