以属性窗口m_wndProperties
为例
创建时
1 | m_wndProperties.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI) |
CBRS_RIGHT
变量使其停靠在右侧
创建后主窗口设置
1 | // int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) |
CBRS_ALIGN_ANY
使其可停靠在任意位置
CMainFrame::DockPane()
函数使其成为主窗口的停靠窗口
创建后自身设置
与其他停靠窗口一起成为多标签窗口
1 | m_wndFileView.EnableDocking(CBRS_ALIGN_ANY); |
AttachToTabWnd
函数:
- 第一个参数是
CDockablePane*
,指向另一个停靠窗口 - 第二个参数指定停靠方式,一般设置为
DM_SHOW
,在当前场景下用处不大,详见CPane Class | Microsoft Learn - 第三个参数是BOOL,控制附属后是否显示,如果FALSE则贴上去但不是最前显示
- 第四个参数是
CDockablePane**
,窗口附属到另一个窗口后,会生成一个新的可停靠窗口,通过这个指针传递出来,可以理解为“多标签可停靠窗口”
效果:
与其他窗口贴贴
与另一个可停靠窗口并列
1 | m_wndProperties.EnableDocking(CBRS_ALIGN_ANY); |
DockToWindow
函数:
- 第一个参数是
CDockablePane*
,指向另一个停靠窗口 - 第二个参数是停靠位置,
CBRS_
开头
效果: