上一篇僅實現分頁拖曳/停靠/浮動,圖釘按鈕為裝飾。參考 CodeProject 代碼加強,現已支援自動隱藏功能!

圖:自動隱藏效果展示
src 目錄 6 個檔案到專案並加入stdafx.h 加入:#define WM_AUTOHIDE_ON (WM_USER + 1)
#include ".\src\sizecbar.h"
#include ".\src\AutoHideBar.h"
// MainFrm.h
class CMainFrame : public CAutoHideFrame // 原為 CMDIFrameWnd
// MainFrm.cpp
IMPLEMENT_DYNCREATE(CMainFrame, CAutoHideFrame)
BEGIN_MESSAGE_MAP(CMainFrame, CAutoHideFrame)
CDockPageBar m_wndDockPageBar;
if (!m_wndDockPageBar.Create(_T("DockPageBar"), this, CSize(230,260), TRUE, 123))
return -1;
m_wndDockPageBar.SetBarStyle(... | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndDockPageBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndDockPageBar, AFX_IDW_DOCKBAR_LEFT);
// 建立編輯視圖作為分頁內容
if (!m_wndEdit.Create(WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL,
CRect(0,0,0,0), this, 123)) return -1;
m_wndDockPageBar.AddPage(&m_wndEdit, "Edit", IDI_INDEX);
編譯執行即可獲得支援拖曳排序、拖出停靠、拖入其他停靠列、自動隱藏的 MSDN 2002 風格分頁介面。自動隱藏核心代碼因趕工未加註解,請參考原始碼自行研究。歡迎改進後回饋作者。