CDockablePane使用心得
2016-06-21 14:31
323 查看
CFrameWndEx 在框架类的头文件中定义一个CDockablePane的数组
CFrameWndEx:: OnCreate() 在Create函数中自动生成了一下代码,对MFC比较熟悉的这里就不讲了
(1) 第一种情况
(2)第二种情况
(3)第三种情况
(4)第四种情况
(5)第五种情况
(6)第六种情况
(7)第七种情况
(8)第八种情况
(9)第九种情况
CDockablePane m_Panes[5];//一个CDockablePane的数组
CFrameWndEx:: OnCreate() 在Create函数中自动生成了一下代码,对MFC比较熟悉的这里就不讲了
CMFCPopupMenu::SetForceMenuFocus(FALSE); InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId); EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, 0, ID_VIEW_TOOLBAR); CDockingManager::SetDockingMode(DT_SMART); EnableAutoHidePanes(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY);
(1) 第一种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// LEFT
(2)第二种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[1]);// BOTTOM DockPane(&m_Panes[0]);// LEFT
(3)第三种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// LEFT DockPane(&m_Panes[1]);// BOTTOM
(4)第四种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// LEFT DockPane(&m_Panes[1]);// LEFT // 注意这里,将0放在1上面 m_Panes[0].DockToWindow(&m_Panes[1], CBRS_TOP);
(5)第五种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// LEFT DockPane(&m_Panes[1]);// LEFT CDockablePane* pTabbedBar = NULL; // 放到同一个选项卡中,并默认选择1 m_Panes[1].AttachToTabWnd(&m_Panes[0], DM_SHOW, TRUE, &pTabbedBar);
(6)第六种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[2].Create(_T("Pane 2"), this, CRect(0, 0, 200, 100), TRUE, 1002, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); m_Panes[2].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// LEFT DockPane(&m_Panes[1]);// LEFT DockPane(&m_Panes[2]);// LEFT m_Panes[0].DockToWindow(&m_Panes[2], CBRS_TOP); CDockablePane* pTabbedBar = NULL; m_Panes[1].AttachToTabWnd(&m_Panes[0], DM_SHOW, TRUE, &pTabbedBar);
(7)第七种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// BOTTOM DockPane(&m_Panes[1]);// BOTTOM CDockablePane* pTabbedBar = NULL; m_Panes[0].DockToWindow(&m_Panes[1], CBRS_LEFT);
(8)第八种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[2].Create(_T("Pane 2"), this, CRect(0, 0, 200, 100), TRUE, 1002, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[3].Create(_T("Pane 3"), this, CRect(0, 0, 200, 100), TRUE, 1003, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[4].Create(_T("Pane 4"), this, CRect(0, 0, 200, 100), TRUE, 1004, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); m_Panes[2].EnableDocking(CBRS_ALIGN_ANY); m_Panes[3].EnableDocking(CBRS_ALIGN_ANY); m_Panes[4].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// BOTTOM DockPane(&m_Panes[1]);// BOTTOM DockPane(&m_Panes[2]);// LEFT DockPane(&m_Panes[3]);// LEFT DockPane(&m_Panes[4]);// RIGHT CDockablePane* pTabbedBar = NULL; m_Panes[0].DockToWindow(&m_Panes[1], CBRS_LEFT); m_Panes[3].AttachToTabWnd(&m_Panes[2], DM_SHOW, TRUE, &pTabbedBar);
(9)第九种情况
if (!m_Panes[0].Create(_T("Pane 0"), this, CRect(0, 0, 200, 100), TRUE, 1000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[1].Create(_T("Pane 1"), this, CRect(0, 0, 200, 100), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[2].Create(_T("Pane 2"), this, CRect(0, 0, 200, 100), TRUE, 1002, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[3].Create(_T("Pane 3"), this, CRect(0, 0, 200, 100), TRUE, 1003, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)) {return FALSE;} if (!m_Panes[4].Create(_T("Pane 4"), this, CRect(0, 0, 200, 100), TRUE, 1004, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI)) {return FALSE;} m_Panes[0].EnableDocking(CBRS_ALIGN_ANY); m_Panes[1].EnableDocking(CBRS_ALIGN_ANY); m_Panes[2].EnableDocking(CBRS_ALIGN_ANY); m_Panes[3].EnableDocking(CBRS_ALIGN_ANY); m_Panes[4].EnableDocking(CBRS_ALIGN_ANY); DockPane(&m_Panes[0]);// BOTTOM DockPane(&m_Panes[1]);// BOTTOM DockPane(&m_Panes[2]);// LEFT DockPane(&m_Panes[3]);// LEFT DockPane(&m_Panes[4]);// RIGHT CDockablePane* pTabbedBar = NULL; m_Panes[1].AttachToTabWnd(&m_Panes[0], DM_SHOW, TRUE, &pTabbedBar); m_Panes[3].AttachToTabWnd(&m_Panes[2], DM_SHOW, TRUE, &pTabbedBar);
相关文章推荐
- Xtreme Docking Pane
- Xtreme Docking Pane
- Xtreme Docking Pane
- Xtreme Docking Pane
- gnome文件管理器(nautilus)树形结构文件窗口 多窗口
- c# 自定义控件 属性菜单 控件移动 闪烁
- Highcharts翻译系列八:Pane窗格选项和PlotOptions绘图选项概览
- [Android实例] SlidingPaneLayout实现最新版QQ主页面效果
- anaconda "pane is dead"
- Pane和Panel有区别吗?
- C++ 高级数据类型(三)—— 指针
- C++ 高级数据类型(四)—— 动态内存分配
- 第四讲c语言初体验,项目1。
- bootstrap-select实现下拉框多选效果
- android:popupwindow的认识
- 19、LVS+keepalived
- iOS开发 mov视频文件转换成其他视频文件格式
- Linux 下的内存管理与调优
- Climbing Stairs
- 文章标题