首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

輕鬆實作 MSDN 2002 風格自動隱藏停靠面板(二)

     編輯:關於VC++

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

圖:自動隱藏效果展示

整合步驟

1. 專案準備

  • AppWizard 建立 SDI 專案
  • 複製 src 目錄 6 個檔案到專案並加入
  • stdafx.h 加入:
#define WM_AUTOHIDE_ON (WM_USER + 1)
#include ".\src\sizecbar.h"
#include ".\src\AutoHideBar.h"

2. 修改主視窗繼承鏈

// MainFrm.h
class CMainFrame : public CAutoHideFrame  // 原為 CMDIFrameWnd

// MainFrm.cpp
IMPLEMENT_DYNCREATE(CMainFrame, CAutoHideFrame)
BEGIN_MESSAGE_MAP(CMainFrame, CAutoHideFrame)

3. 宣告與建立 DockPageBar

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);

4. 向停靠列加入分頁

// 建立編輯視圖作為分頁內容
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 風格分頁介面。自動隱藏核心代碼因趕工未加註解,請參考原始碼自行研究。歡迎改進後回饋作者。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved