MFC 单文档/多文档/Ribbon,常见配置(含关闭按钮的隐藏等)

停靠窗口 - CDockablePane类

创建Pane类 - 自定义的停靠面板

// Pane类,继承自DockablePane类。即停靠窗口

class CXXXWnd : public CDockingPane

{

...

}

声明Pane类变量

//main.h

CXXXWnd        m_wndXXX;        //声明

创建,并添加到主窗体

//main.cpp

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    ...

    //创建停靠窗口

    if (!CreateDockingWindows())

    {

            TRACEO(未能创建停靠窗口\n");

            return -1;

    }

    m_wndXXX.EnableDocking(CBRS_ALIGN_ANY);

    m_wndXXX.SetControlBarStyle(~AFX_CBRS_CLOSE);        //去掉pane右上角关闭按钮 
    //m_wndXXX.SetControlBarStyle(AFX_CBRS_RESIZE);        //去掉pane右上角关闭按钮

    DockPane(&m_wndXXX);

    ...
}

状态栏设置 - CMFCRibbonStatusBar

创建定时器

        在状态栏时间显示是一个常用的操作,一个定时器是免不了了,在CMainFrame::OnCreate()函数中添加SetTimer(1, 1000, NULL);
  “1”表示的是EventID,可以设置多个Timer,传递不同的EventID便有不同的时间间隔。 “1000”表示的是1000ms,每隔1000ms执行一次定时器内的代码。 第三个参数是一个DWORD值,包含定时器标识,一般设为NULL即可。    

        CMFCRibbonStatusBar与基于对话框模式的CStatusBar有诸多不同之处。         CMFCRibbonStatusBar 内的所有元素都是通过AddElement()方法添加进去的,也就是说,所有的添加、修改、删除都需要通过操作这些元素来实现。


1. // 设置要显示的内容  
2. CString strTitlePane1; 
3. CString strTitlePane2 = CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M: %S")); 
4. bNameValid = strTitlePane1.LoadString(IDS_STATUS_PANE1);  
6. m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1,  strTitlePane1, TRUE), strTitlePane1);  
7. m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR _PANE2, strTitlePane2, FALSE), strTitlePane2);

        对CTime进行格式化,”y”代表年份显示12年,”Y”代表年份显示2012年。 m_wndStatusBar就是 CMFCRibbonStatusBar 类型的,这儿用到了这两个方法:

// Pane类,继承自DockablePane类。即停靠窗口

class CXXXWnd : public CDockingPane

{

...

}

声明Pane类变量

//main.h

CXXXWnd        m_wndXXX;        //声明

创建,并添加到主窗体

//main.cpp

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    ...

    //创建停靠窗口

    if (!CreateDockingWindows())

    {

            TRACEO(未能创建停靠窗口\n");

            return -1;

    }

    m_wndXXX.EnableDocking(CBRS_ALIGN_ANY);

    m_wndXXX.SetControlBarStyle(~AFX_CBRS_CLOSE);        //去掉pane右上角关闭按钮 
    //m_wndXXX.SetControlBarStyle(AFX_CBRS_RESIZE);        //去掉pane右上角关闭按钮

    DockPane(&m_wndXXX);

    ...
}

你可能感兴趣的:(mfc,CDockablePane,c++)