轉帖|使用教程|編輯:鮑佳佳|2020-11-03 13:58:04.040|閱讀 861 次
概述:BCGControlBar庫專業版(專業版)引入了非基于MFC的 可停靠架構。這意味著所有控制條都不必繼承自CControlBar。Pro Version中所有控件欄的基類是CBCGPBaseControlBar(它又來自CBCGPWnd)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
BCGControlBar ("Business Components Gallery ControlBar")是MFC擴展庫,使您可以創建具有完全自定義選項(功能區、可自定義工具欄、菜單等)以及一組專業設計的豐富Microsoft Office和Microsoft Visual Studio的應用程序 GUI控件,例如圖表、日歷、網格、編輯器、甘特圖和許多其他控件。
BCGControlBar Pro for MFC v30.6最新版下載
庫框架
BCGControlBar庫專業版(專業版)引入了非基于MFC的 可停靠架構。這意味著所有控制條都不必繼承自CControlBar。Pro Version中所有控件欄的基類是CBCGPBaseControlBar(它又來自CBCGPWnd)。
專業版架構背后的主要思想與MFC沒有太大區別。更重要的是,我們試圖使Pro版本與MFC(和BCGControlBar Library Standard Edition)高度兼容。
您可以在下面看到使用Pro版本構建的應用程序的圖片:
應用程序主框架窗口通常由CBCGPFrameWnd或CBCGPMDIFrameWnd表示。主框架稱為“停靠 站點”。所有控制條可以有三種類型的父母:“停靠站點”,“停靠欄”或“小窗口窗口”。控制條可以分為兩種通用類型:不可調整大小的控制條(例如狀態欄和工具欄)和可調整大小的控制條。在“可調整大小”的控制條下,我們指的是可以通過分割器(或“滑塊”)調整大小的條形,可以形成“容器”(一個控制條可以停靠到另一個控制條并在它們之間創建一個分離器)并且不能附著(停靠)到停靠欄。所有不可調整大小的控制條都應該來自CBCGPControlBar。CBCGPDockingControlBar(此類實現停靠在dock站點的基本功能,放在容器中,成為自動隱藏等)。
主框架窗口或停靠站點是所有控制欄和miniframe窗口的所有者。它包含CBCGPDockManager類的成員( 停靠管理器)。停靠管理器維護屬于停靠站點的所有控制條的列表。列表的排序方式是一句停靠站點創建的先后。當需要重新計算布局時,它會循環遍歷此列表,將每個控制欄的布局調整為當前邊界矩形(停靠站點)并減去控制欄區域。每次需要調整停靠布局時,您都可以調用mainframeclass :: AdjustDockingLayout或RecalcLayout,此調用將被重定向到停靠管理器。
每個主框架可以具有沿著邊界放置的“停靠欄”(與邊界對齊)。Dock bar是CBCGPDockBar類的控件欄。Dock欄可以接受CBCGPControlBar派生的對象(通常是工具欄)。應該在主框架窗口初始化期間通過調用mainframeclass :: EnableDocking(DWORD dwDockStyle)來創建停靠欄。如果要在主框架窗口的某些側面啟用“自動隱藏”欄,則應調用mainframe::EnableAutoHideBars(DWORD dwDockStyle)。此調用將在每個停靠欄旁邊創建CBCGPAutoHideDockBar對象。您仍然可以使用CBRS_樣式指定 停靠對齊。每個停靠欄都被劃分(包含一個列表)到“停靠行”。Dock行由CBCGPDockBarRow表示類。每個停靠行包含一個工具欄列表。當工具欄停靠(例如,通過鼠標)或在同一個停靠站中從一行移動到另一行時,框架會創建一個新行并相應地調整停靠欄的大小或將工具欄放在現有行上。
當控制欄浮動時,它位于miniframe窗口上。Miniframe窗口由兩個類呈現:CBCGPMiniFrameWnd(可以只包含一個控制條)和CBCGPMultiMiniFrameWnd(可以包含多個控制條)。當控件欄浮動時,框架會自動創建一個miniframe窗口。 利用代碼使控制欄浮動,可以調用CBCGPBaseControlBar :: FloatControlBar()。請注意,當控制欄變為浮動時,其父級會自動更改并設置為miniframe窗口。當控制欄停靠時,其父級將更改回停靠欄(用于工具欄)或停靠站點(用于可調整大小的控制欄)。
滑塊(或分離器)由CBCGPSlider類表示。當停靠控制欄停靠在停靠站點或另一個控制欄上時,框架會自動創建滑塊。當欄停靠到停靠站點時,新滑塊稱為“默認滑塊”。它包含有關其調整大小的 停靠控制欄布局的所有信息。默認滑塊放置在由停靠管理器維護的控制欄的常規列表中,并控制在“包含”停靠控制欄上執行的所有布局操作。
容器
所有可調整大小的控制條在彼此 停靠時都保持在“容器”中。容器由CBCGPBarContainer類表示。每個容器都有指向“左”欄,“右”欄,“左”子容器,“右”子容器和左右部分之間的分離器的指針。通過這種方式,我們可以構建一個由多個控制條和分割器構成的樹,從而實現非常復雜的控制條布局,這些控制條可以一起調整大小。所述CBCGPBarContainerManager類維護容器(它包含一個指向根容器)的樹。此外,它還維護了兩個放置在此樹中的控制條和滑塊列表。
自動隱藏控制欄
每個 停靠控制欄自動啟用“自動隱藏”功能。當用戶單擊位于停靠控制欄標題上的按鈕按鈕時,該欄將切換到自動隱藏模式。框架創建CBCGPAutoHideToolbar類型和一個新的按鈕的一個新的工具欄CBCGPAutoHideButton類型,則以工具欄的自動隱藏停靠欄上(根據 當前跳的邊界),高度自動隱藏按鈕,工具欄和附加指針到停靠控制條到按鈕。此時, 停靠控制欄被放置在由停靠管理器維護的特殊自動隱藏欄列表中。
選項卡式控制欄和外觀欄
所述CBCGPBaseTabWnd類實現帶有可拆卸標簽窗口的基本功能。所述CBCGPBaseTabbedBar源自CBCGPDockingControlBar并保持一個指向CBCGPBaseTabWnd對象。通過這種方式,我們可以實現停靠和調整選項卡式控制欄的功能。使用CBCGPDockingControlBar :: AttachToTabWnd動態創建 停靠選項卡式控制欄。
Outlook欄控件也基于專業版中的選項卡欄(CBCGPOutlookBar派生自CBCGPBaseTabbedBar)。
一些提示如何自定義應用程序行為
您可以創建一個應用多種新樣式組合的新控制欄:
該CBCGPBaseControlBar實現下列虛擬bool方法,以反映這些標志:CBCGPBaseControlBar :: CanBeClosed,CBCGPBaseControlBar :: CanAutoHide,CBCGPBaseControlBar :: CanFloat。您可以在派生類中覆蓋它們以自定義此行為。
Outlook欄表現為常規選項卡式控制欄。將一個控制欄停靠到另一個控制欄時,將根據創建第二個停靠控制欄時指定的以下樣式定義結果樣式:
CBCGPDockingControlBar具有SetTabbedControlBarRTC方法。您可以使用它來自定義由于停靠到選項卡窗口而創建的控制欄。
本文轉載自CSDN-
現購買BCGSoft正版授權最高直降萬元,歡迎點擊了解產品正版授權>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn