共用方式為


CDockingManager 類別

實作控制配置停駐於主框架視窗中的核心功能。

語法

class CDockingManager : public CObject

成員

公用方法

名稱 描述
CDockingManager::AddDockSite 建立停駐窗格,並將其新增至控制列清單。
CDockingManager::AddHiddenMDITabbedBar 將控制碼加入列窗格至隱藏的 MDI 索引標籤式列窗格清單。
CDockingManager::AddMiniFrame 將框架新增至迷你框架清單。
CDockingManager::AddPane 向停駐管理員註冊窗格。
CDockingManager::AdjustDockingLayout 重新計算並調整框架視窗中所有窗格的配置。
CDockingManager::AdjustPaneFrames 導致WM_NCCALCSIZE訊息傳送至所有窗格和 CPaneFrameWnd 視窗。
CDockingManager::AdjustRectToClientArea 調整矩形的對齊方式。
CDockingManager::AlignAutoHidePane 以自動隱藏模式調整停駐窗格的大小,使其採用停駐月臺周圍框架工作區的完整寬度或高度。
CDockingManager::AutoHidePane 建立自動隱藏工具列。
CDockingManager::BringBarsToTop 將具有指定對齊方式的停駐列帶到頂端。
CDockingManager::BuildPanesMenu 將停駐窗格和工具列的名稱新增至功能表。
CDockingManager::CalcExpectedDockedRect 計算停駐視窗的預期矩形。
CDockingManager::Create 建立停駐管理員。
CDockingManager::D eterminePaneAndStatus 決定包含指定點及其停駐狀態的窗格。
CDockingManager::D isableRestoreDockState 啟用或停用從登錄載入停駐配置。
CDockingManager::D ockPane 將窗格停駐到另一個窗格或框架視窗。
CDockingManager::D ockPaneLeftOf 將窗格停駐於另一個窗格的左邊。
CDockingManager::EnableAutoHidePanes 啟用窗格停駐到主框架、建立停駐窗格,並將它新增至控制列清單。
CDockingManager::EnableDocking 建立停駐窗格,並讓窗格停駐到主框架。
CDockingManager::EnableDockSiteMenu 顯示其他按鈕,此按鈕會在所有停駐窗格的標題上開啟快顯視窗。
CDockingManager::EnablePaneCoNtextMenu 當使用者按一下滑鼠右鍵,程式庫正在處理WM_CONTEXTMENU訊息時,告訴程式庫顯示具有應用程式工具列和停駐窗格清單的特殊操作功能表。
CDockingManager::FindDockSite 擷取位於指定位置且具有指定對齊方式的列窗格。
CDockingManager::FindDockSiteByPane 傳回具有目標列窗格識別碼的列窗格。
CDockingManager::FindPaneByID 依指定的控制項識別碼尋找窗格。
CDockingManager::FixupVirtualRects 將所有目前的工具列位置認可到虛擬矩形。
CDockingManager::FrameFromPoint 傳回包含指定點的框架。
CDockingManager::GetClientAreaBounds 取得包含工作區界限的矩形。
CDockingManager::GetDockingMode 傳回目前的停駐模式。
CDockingManager::GetDockSiteFrameWnd 取得父視窗框架的指標。
CDockingManager::GetEnabledAutoHideAlignment 傳回窗格的啟用對齊方式。
CDockingManager::GetMiniFrames 取得迷你框架的清單。
CDockingManager::GetOuterEdgeBounds 取得包含框架外緣的矩形。
CDockingManager::GetPaneList 傳回屬於停駐管理員的窗格清單。 這包括所有浮動窗格。
CDockingManager::GetSmartDockingManager 擷取智慧停駐管理員的指標。
CDockingManager::GetSmartDockingManagerPermanent 擷取智慧停駐管理員的指標。
CDockingManager::GetSmartDockingParams 傳回停駐管理員的智慧停駐參數。
CDockingManager::GetSmartDockingTheme 靜態方法,會傳回用來顯示智慧停駐標記的主題。
CDockingManager::HideAutoHidePanes 隱藏處於自動隱藏模式的窗格。
CDockingManager::InsertDockSite 建立停駐窗格,並將其插入控制列清單中。
CDockingManager::InsertPane 將控制項窗格插入控制列清單中。
CDockingManager::IsDockSiteMenu 指定是否在所有窗格的標題上顯示快顯視窗。
CDockingManager::IsInAdjustLayout 判斷是否調整所有窗格的配置。
CDockingManager::IsOLEContainerMode 指定停駐管理員是否處於 OLE 容器模式。
CDockingManager::IsPointNearDockSite 判斷指定的點是否靠近停駐月臺。
CDockingManager::IsPrintPreviewValid 判斷是否已設定預覽列印模式。
CDockingManager::LoadState 從登錄載入停駐管理員的狀態。
CDockingManager::LockUpdate 鎖定指定的視窗。
CDockingManager::OnActivateFrame 當框架視窗為使用中或停用時,由架構呼叫。
CDockingManager::OnClosePopupMenu 架構在作用中的快顯功能表處理 WM_DESTROY 訊息時所呼叫。
CDockingManager::OnMoveMiniFrame 由架構呼叫以移動迷你框架視窗。
CDockingManager::OnPaneCoNtextMenu 架構在建置具有窗格清單的功能表時呼叫。
CDockingManager::P aneFromPoint 傳回包含指定點的窗格。
CDockingManager::P rocessPaneCoNtextMenuCommand 由架構呼叫以選取或清除指定命令的核取方塊,並重新計算顯示窗格的配置。
CDockingManager::RecalcLayout 重新計算控制項清單中存在的控制項內部配置。
CDockingManager::ReleaseEmptyPaneContainers 釋放空白窗格容器。
CDockingManager::RemoveHiddenMDITabbedBar 移除指定的隱藏列窗格。
CDockingManager::RemoveMiniFrame 從迷你框架清單中移除指定的框架。
CDockingManager::RemovePaneFromDockManager 取消註冊窗格,並將它從停駐管理員中的清單中移除。
CDockingManager::ReplacePane 以一個窗格取代另一個。
CDockingManager::ResortMiniFramesForZOrder 採用迷你框架清單中的框架。
CDockingManager::SaveState 將停駐管理員的狀態儲存至登錄。
CDockingManager::SendMessageToMiniFrames 將指定的訊息傳送至所有迷你畫面。
CDockingManager::Serialize 將停駐管理員寫入封存。 (覆寫 CObject::Serialize。)
CDockingManager::SetAutohideZOrder 設定控制列和指定窗格的大小、寬度和高度。
CDockingManager::SetDockingMode 設定停駐模式。
CDockingManager::SetDockState 設定控制列、迷你畫面格和自動隱藏列的停駐狀態。
CDockingManager::SetPrintPreviewMode 設定預覽列印中顯示的橫條預覽列印模式。
CDockingManager::SetSmartDockingParams 設定定義智慧停駐行為的參數。
CDockingManager::ShowDelayShowMiniFrames 顯示或隱藏迷你框架的視窗。
CDockingManager::ShowPanes 顯示或隱藏控制項和自動隱藏列的窗格。
CDockingManager::StartSDocking 根據智慧停駐管理員的對齊方式,啟動指定視窗的智慧停駐。
CDockingManager::StopSDocking 停止智慧停駐。

資料成員

名稱 描述
CDockingManager::m_bHideDockingBarsInContainerMode 指定停駐管理員是否在 OLE 容器模式中隱藏窗格。
CDockingManager::m_dockModeGlobal 指定全域停駐模式。
CDockingManager::m_nDockSensitivity 指定停駐敏感度。
CDockingManager::m_nTimeOutBeforeDockingBarDock 指定停駐窗格停駐在立即停駐模式之前的時間,以毫秒為單位。
CDockingManager::m_nTimeOutBeforeToolBarDock 指定工具列停駐到主框架視窗之前的時間,以毫秒為單位。

備註

主框架視窗會自動建立並初始化這個類別。

停駐管理員物件會保存停駐配置中的所有窗格清單,以及屬於主框架視窗的所有 CPaneFrameWnd 視窗清單。

類別 CDockingManager 會實作一些可用來尋找窗格或 CPaneFrameWnd 視窗的服務。 您通常不會直接呼叫這些服務,因為它們會包裝在主框架視窗物件中。 如需詳細資訊,請參閱 CPaneFrameWnd 類別

自訂秘訣

下列秘訣適用于 CDockingManager 物件:

範例

下列範例示範如何使用 類別中的 CDockingManager 各種方法來設定 CDockingManager 物件。 此範例示範如何顯示另一個按鈕,以在所有停駐窗格的標題上開啟快顯功能表,以及如何設定物件的停駐模式。 此程式碼片段是 Visual Studio 示範範例 一部分。

CDockingManager *pDockManager = GetDockingManager();
ASSERT_VALID(pDockManager);
pDockManager->AdjustPaneFrames();
pDockManager->EnableDockSiteMenu();
pDockManager->SetDockingMode(DT_STANDARD);

繼承階層架構

CObject

CDockingManager

需求

標頭: afxDockingManager.h

CDockingManager::AddDockSite

建立停駐窗格,並將其新增至控制列清單。

BOOL AddDockSite(
    const AFX_DOCKSITE_INFO& info,
    CDockSite** ppDockBar = NULL);

參數

資訊
[in]包含停駐窗格對齊之資訊結構的參考。

ppDockBar
[out]指向新停駐窗格指標的指標。

傳回值

如果已成功建立停駐窗格,則為 TRUE;否則為 FALSE。

CDockingManager::AddHiddenMDITabbedBar

將控制碼加入列窗格至隱藏的 MDI 索引標籤式列窗格清單。

void AddHiddenMDITabbedBar(CDockablePane* pBar);

參數

pBar
[in]橫條圖窗格的指標

CDockingManager::AddPane

向停駐管理員註冊窗格。

BOOL AddPane(
    CBasePane* pWnd,
    BOOL bTail = TRUE,
    BOOL bAutoHide = FALSE,
    BOOL bInsertForOuterEdge = FALSE);

參數

pWnd
[in, out]指定要新增至停駐管理員的窗格。

bTail
[in]TRUE 是表示 將窗格新增至停駐管理員窗格清單的結尾;否則為 FALSE。

bAutoHide
[in]僅供內部使用。 一律使用預設值 FALSE。

bInsertForOuterEdge
[in]僅供內部使用。 一律使用預設值 FALSE。

傳回值

如果窗格已成功向停駐管理員註冊,則為 TRUE;否則為 FALSE。

備註

呼叫這個方法,向停駐管理員註冊非浮動、不可調整大小的窗格。 如果您未註冊窗格,當停駐管理員配置時,它們將不會正確顯示。

CDockingManager::AdjustDockingLayout

重新計算並調整框架視窗中所有窗格的配置。

virtual void AdjustDockingLayout(HDWP hdwp = NULL);

參數

hdwp
[in]指定延後視窗位置結構。 如需詳細資訊,請參閱 Windows 資料類型

備註

CDockingManager::AddMiniFrame

將框架新增至迷你框架清單。

virtual BOOL AddMiniFrame(CPaneFrameWnd* pWnd);

參數

pWnd
[in]框架的指標。

傳回值

TRUE 是表示 如果框架不在迷你畫面清單中且已成功新增;否則為 FALSE。

CDockingManager::AdjustPaneFrames

導致WM_NCCALCSIZE訊息傳送至所有窗格和 CPaneFrameWnd 視窗。

virtual void AdjustPaneFrames();

備註

CDockingManager::AdjustRectToClientArea

調整矩形的對齊方式。

virtual BOOL AdjustRectToClientArea(
    CRect& rectResult,
    DWORD dwAlignment);

參數

rectResult
[in]物件的參考 CRect

dwAlignment
[in]物件的對齊方式 CRect

傳回值

如果已調整物件的對齊方式, CRect 則為 TRUE;否則為 FALSE。

備註

dwAlignment 參數可以有下列其中一個值:

  • CBRS_ALIGN_TOP

  • CBRS_ALIGN_BOTTOM

  • CBRS_ALIGN_LEFT

  • CBRS_ALIGN_RIGHT

CDockingManager::AlignAutoHidePane

以自動隱藏模式調整停駐窗格的大小,使其採用停駐月臺周圍框架工作區的完整寬度或高度。

void AlignAutoHidePane(
    CPaneDivider* pDefaultSlider,
    BOOL bIsVisible = TRUE);

參數

pDefaultSlider
[in]停駐滑杆窗格。

bIsVisible
[in]如果顯示停駐窗格,則為 TRUE;否則為 FALSE。

CDockingManager::AutoHidePane

建立自動隱藏工具列。

CMFCAutoHideToolBar* AutoHidePane(
    CDockablePane* pBar,
    CMFCAutoHideToolBar* pCurrAutoHideToolBar = NULL);

參數

pBar
[in]列窗格的指標。

pCurrAutoHideToolBar
[in]自動隱藏工具列的指標。

傳回值

如果未建立自動隱藏工具列,則為 Null;否則為新工具列的指標。

CDockingManager::BringBarsToTop

將具有指定對齊方式的停駐列帶到頂端。

void BringBarsToTop(
    DWORD dwAlignment = 0,
    BOOL bExcludeDockedBars = TRUE);

參數

dwAlignment
[in]停駐列的對齊方式會帶到其他視窗的頂端。

bExcludeDockedBars
[in]TRUE 是表示 排除停駐列不要位於頂端;否則為 FALSE。

CDockingManager::BuildPanesMenu

將停駐窗格和工具列的名稱新增至功能表。

void BuildPanesMenu(
    CMenu& menu,
    BOOL bToolbarsOnly);

參數

功能表
[in]要加入停駐窗格和工具列名稱的功能表。

bToolbarsOnly
[in]TRUE 表示只將工具列名稱新增至功能表;否則為 FALSE。

CDockingManager::CalcExpectedDockedRect

計算停駐視窗的預期矩形。

void CalcExpectedDockedRect(
    CWnd* pWnd,
    CPoint ptMouse,
    CRect& rectResult,
    BOOL& bDrawTab,
    CDockablePane** ppTargetBar);

參數

pWnd
[in]要停駐之視窗的指標。

ptMouse
[in]滑鼠位置。

rectResult
[out]計算矩形。

bDrawTab
[in]TRUE 表示繪製索引標籤;否則為 FALSE。

ppTargetBar
[out]目標窗格指標的指標。

備註

如果使用者將視窗拖曳到 ptMouse 指定的點,並將視窗停駐在該處,這個方法會計算視窗佔用的矩形。

CDockingManager::Create

建立停駐管理員。

BOOL Create(CFrameWnd* pParentWnd);

參數

pParentWnd
[in]停駐管理員之父框架的指標。 此值不得為 Null。

傳回值

TRUE 一律為 TRUE。

CDockingManager::D eterminePaneAndStatus

決定包含指定點及其停駐狀態的窗格。

virtual AFX_CS_STATUS DeterminePaneAndStatus(
    CPoint pt,
    int nSensitivity,
    DWORD dwEnabledAlignment,
    CBasePane** ppTargetBar,
    const CBasePane* pBarToIgnore,
    const CBasePane* pBarToDock);

參數

pt
[in]要檢查之窗格的位置。

nSensitivity
[in]要增加每個核取窗格之視窗矩形的值。 如果指定的點位於這個增加的區域,窗格會滿足搜尋準則。

dwEnabledAlignment
[in]停駐窗格的對齊方式。

ppTargetBar
[out]目標窗格指標的指標。

pBarToIgnore
[in]方法忽略的窗格。

pBarToDock
[in]停駐的窗格。

傳回值

停駐狀態。

備註

停駐狀態可以是下列其中一個值:

AFX_CS_STATUS值 意義
CS_NOTHING 指標不在停駐月臺上。 因此,讓窗格保持浮動。
CS_DOCK_IMMEDIATELY 指標位於直接模式的停駐月臺上(已啟用DT_IMMEDIATE樣式),因此必須立即停駐窗格。
CS_DELAY_DOCK 指標位於停駐月臺上,該月臺是另一個停駐窗格或主框架的邊緣。
CS_DELAY_DOCK_TO_TAB 指標位於停駐月臺上,導致窗格停駐在索引標籤式視窗中。 當滑鼠位於另一個停駐窗格的標題或索引標籤窗格的索引標籤區域上方時,就會發生這種情況。

CDockingManager::D isableRestoreDockState

啟用或停用從登錄載入停駐配置。

void DisableRestoreDockState(BOOL bDisable = TRUE);

參數

bDisable
[in]TRUE 表示停用從登錄載入停駐配置;否則為 FALSE。

備註

當您在載入應用程式狀態時,必須保留停駐窗格和工具列的目前配置時,請呼叫這個方法。

CDockingManager::D ockPane

將窗格停駐到另一個窗格或框架視窗。

void DockPane(
    CBasePane* pBar,
    UINT nDockBarID = 0,
    LPCRECT lpRect = NULL);

參數

pBar
[in]要停駐的列窗格指標。

nDockBarID
[in]要停駐的列識別碼。

lpRect
[in]目的矩形。

CDockingManager::D ockPaneLeftOf

將窗格停駐於另一個窗格的左邊。

BOOL DockPaneLeftOf(
    CPane* pBarToDock,
    CPane* pTargetBar);

參數

pBarToDock
[in]要停駐在 pTargetBar 左邊之窗格的 指標。

pTargetBar
[in]目標窗格的指標。

傳回值

如果窗格已成功停駐,則為 TRUE;否則為 FALSE。

CDockingManager::EnableAutoHidePanes

啟用窗格停駐到主框架、建立停駐窗格,並將它新增至控制列清單。

BOOL EnableAutoHidePanes(DWORD dwStyle);

參數

dwStyle
[in]停駐對齊方式。

傳回值

如果已成功建立停駐窗格,則為 TRUE;否則為 FALSE。

CDockingManager::EnableDocking

建立停駐窗格,並讓窗格停駐到主框架。

BOOL EnableDocking(DWORD dwStyle);

參數

dwStyle
[in]停駐對齊方式。

傳回值

如果已成功建立停駐窗格,則為 TRUE;否則為 FALSE。

CDockingManager::EnableDockSiteMenu

顯示其他按鈕,此按鈕會在所有停駐窗格的標題上開啟快顯視窗。

static void EnableDockSiteMenu(BOOL bEnable = TRUE);

參數

bEnable
[in]TRUE 表示啟用 Dock 月臺功能表;否則為 FALSE。

備註

停駐月臺功能表會顯示下列選項,以變更窗格的停駐狀態:

  • Floating - 浮動窗格

  • Docking - 將窗格停駐在窗格最後停駐位置的主框架

  • AutoHide - 將窗格切換為自動隱藏模式

  • Hide - 隱藏窗格

根據預設,不會顯示此功能表。

CDockingManager::EnablePaneCoNtextMenu

當使用者按一下滑鼠右鍵,程式庫正在處理WM_CONTEXTMENU訊息時,告訴程式庫顯示具有應用程式工具列和停駐窗格清單的特殊操作功能表。

void EnablePaneContextMenu(
    BOOL bEnable,
    UINT uiCustomizeCmd,
    const CString& strCustomizeText,
    BOOL bToolbarsOnly = FALSE);

參數

bEnable
[in]如果為 TRUE,程式庫會開啟自動操作功能表的支援;如果為 FALSE,程式庫會關閉自動操作功能表的支援。

uiCustomizeCmd
[in]功能表中自訂 專案的命令識別碼。

strCustomizeText
[in]自訂 專案的文字

bToolbarsOnly
[in]如果為 TRUE,功能表只會顯示應用程式工具列的清單;如果為 FALSE,程式庫會將應用程式停駐窗格新增至此清單。

CDockingManager::FindDockSite

擷取位於指定位置且具有指定對齊方式的列窗格。

virtual CDockSite* FindDockSite(
    DWORD dwAlignment,
    BOOL bOuter);

參數

dwAlignment
[in]列窗格的對齊方式。

bOuter
[in]如果為 TRUE,請擷取控制列清單中的前端位置列。 否則,請在控制列清單中擷取尾端位置的橫條。

傳回值

具有指定對齊方式的停駐窗格;否則為 Null。

CDockingManager::FindPaneByID

依指定的控制項識別碼尋找窗格。

virtual CBasePane* FindPaneByID(
    UINT uBarID,
    BOOL bSearchMiniFrames = FALSE);

參數

uBarID
[in]指定要尋找之窗格的控制項識別碼。

bSearchMiniFrames
[in]TRUE 表示在搜尋中包含所有浮動窗格。 FALSE 表示只包含停駐窗格。

傳回值

CBasePane 物件,如果找不到指定的窗格,則為 Null。

備註

CDockingManager::FindDockSiteByPane

傳回具有目標列窗格識別碼的列窗格。

virtual CDockSite* FindDockSiteByPane(CPane* pTargetBar);

參數

pTargetBar
[in]目標列窗格的指標。

傳回值

具有目標列窗格識別碼的長條圖窗格;如果不存在這類列窗格,則為 Null。

CDockingManager::FixupVirtualRects

將所有目前的工具列位置認可到虛擬矩形。

virtual void FixupVirtualRects();

備註

當使用者開始拖曳工具列時,應用程式會記住其在虛擬矩形 中的 原始位置。 當使用者在其停駐月臺上移動工具列時,工具列可能會移動其他工具列。 其他工具列的原始位置會儲存在對應的虛擬矩形中。

CDockingManager::FrameFromPoint

傳回包含指定點的框架。

virtual CPaneFrameWnd* FrameFromPoint(
    CPoint pt,
    CPaneFrameWnd* pFrameToExclude,
    BOOL bFloatMultiOnly) const;

參數

pt
[in]指定要檢查的點,以螢幕座標為單位。

pFrameToExclude
[in]要排除之框架的指標。

bFloatMultiOnly
[in]TRUE 表示排除不是 實例的 CMultiPaneFrameWnd 框架;否則為 FALSE。

傳回值

包含指定點的框架;否則為 Null。

CDockingManager::GetClientAreaBounds

取得包含工作區界限的矩形。

CRect GetClientAreaBounds() const;

void GetClientAreaBounds(CRect& rcClient);

參數

rcClient
[out]包含工作區界限之矩形的參考。

傳回值

包含工作區界限的矩形。

CDockingManager::GetDockingMode

傳回目前的停駐模式。

static AFX_DOCK_TYPE GetDockingMode();

傳回值

表示目前停駐模式的列舉值。 它可能是下列其中一個值:

  • DT_STANDARD

  • DT_IMMEDIATE

  • DT_SMART

備註

若要設定停駐模式,請呼叫 CDockingManager::SetDockingMode

CDockingManager::GetDockSiteFrameWnd

取得父視窗框架的指標。

CFrameWnd* GetDockSiteFrameWnd() const;

傳回值

父視窗框架的指標。

CDockingManager::GetEnabledAutoHideAlignment

傳回窗格的啟用對齊方式。

DWORD GetEnabledAutoHideAlignment() const;

傳回值

CBRS_ALIGN_旗標的位元組合,如果未啟用自動隱藏窗格,則為 0。 如需詳細資訊,請參閱 CFrameWnd::EnableDocking

備註

方法會傳回自動隱藏控制列的啟用對齊方式。 若要啟用自動隱藏列,請呼叫 CFrameWndEx::EnableAutoHidePanes

CDockingManager::GetMiniFrames

取得迷你框架的清單。

const CObList& GetMiniFrames() const;

傳回值

包含屬於停駐管理員之控制列的迷你框架清單。

CDockingManager::GetOuterEdgeBounds

取得包含框架外緣的矩形。

CRect GetOuterEdgeBounds() const;

傳回值

包含框架外緣的矩形。

CDockingManager::GetPaneList

傳回屬於停駐管理員的窗格清單。 這包括所有浮動窗格。

void GetPaneList(
    CObList& lstBars,
    BOOL bIncludeAutohide = FALSE,
    CRuntimeClass* pRTCFilter = NULL,
    BOOL bIncludeTabs = FALSE);

參數

lstBars
[in, out]包含目前停駐管理員的所有窗格。

bIncludeAutohide
[in]TRUE 表示包含處於自動隱藏模式的窗格;否則為 FALSE。

pRTCFilter
[in]如果不是 Null,則傳回的清單只包含指定執行時間類別的窗格。

bIncludeTabs
[in]TRUE 表示包含索引標籤;否則為 FALSE。

備註

如果停駐管理員中有任何索引標籤式窗格,此方法會傳回 CBaseTabbedPane 類別 物件的指標 ,而且您必須明確地列舉索引標籤。

使用 pRTCFilter 取得特定窗格類別。 例如,您可以藉由適當地設定此值來取得工具列。

CDockingManager::GetSmartDockingManager

擷取智慧停駐管理員的指標。

CSmartDockingManager* GetSmartDockingManager();

傳回值

智慧停駐管理員的指標。

CDockingManager::GetSmartDockingManagerPermanent

擷取智慧停駐管理員的指標。

CSmartDockingManager* GetSmartDockingManagerPermanent() const;

傳回值

智慧停駐管理員的指標。

CDockingManager::GetSmartDockingParams

傳回停駐管理員的智慧停駐參數。

static CSmartDockingInfo& GetSmartDockingParams();

傳回值

類別,其中包含目前停駐管理員的智慧停駐參數。 如需詳細資訊,請參閱 CSmartDockingInfo 類別

備註

CDockingManager::HideAutoHidePanes

隱藏處於自動隱藏模式的窗格。

void HideAutoHidePanes(
    CDockablePane* pBarToExclude = NULL,
    BOOL bImmediately = FALSE);

參數

pBarToExclude
[in]要隱藏之列的指標。

bImmediately
[in]TRUE 可立即隱藏窗格;FALSE 可隱藏具有自動隱藏效果的窗格。

CDockingManager::InsertDockSite

建立停駐窗格,並將其插入控制列清單中。

BOOL InsertDockSite(
    const AFX_DOCKSITE_INFO& info,
    DWORD dwAlignToInsertAfter,
    CDockSite** ppDockBar = NULL);

參數

資訊
[in]結構,包含停駐窗格的對齊資訊。

dwAlignToInsertAfter
[in]停駐窗格的對齊方式。

ppDockBar
[out]停駐窗格指標的指標。

傳回值

如果已成功建立停駐窗格,則為 TRUE;否則為 FALSE。

CDockingManager::InsertPane

將控制項窗格插入控制列清單中。

BOOL InsertPane(
    CBasePane* pControlBar,
    CBasePane* pTarget,
    BOOL bAfter = TRUE);

參數

pControlBar
[in]控制項窗格的指標。

pTarget
[in]目標窗格的指標。

bAfter
[in]TRUE 是表示 在目標窗格的位置之後插入窗格;否則為 FALSE。

傳回值

如果控制項窗格已成功新增至控制列清單,則為 TRUE;否則為 FALSE。

備註

如果控制項窗格已經在控制列清單中,或目標窗格不存在於控制列清單中,則這個方法會傳回 false。

CDockingManager::IsDockSiteMenu

指定是否在所有窗格的標題上顯示快顯視窗。

static BOOL IsDockSiteMenu();

傳回值

如果停駐月臺功能表顯示在所有停駐窗格的標題上,則為 TRUE,否則為 FALSE。

備註

您可以呼叫 CDockingManager::EnableDockSiteMenu 來啟用 Dock 網站功能表。

CDockingManager::IsInAdjustLayout

判斷是否調整所有窗格的配置。

BOOL IsInAdjustLayout() const;

傳回值

如果調整所有窗格的配置,則為 TRUE;否則為 FALSE。

CDockingManager::IsOLEContainerMode

指定停駐管理員是否處於 OLE 容器模式。

BOOL IsOLEContainerMode() const;

傳回值

如果停駐管理員處於 OLE 容器模式,則為 TRUE;否則為 FALSE。

備註

在 OLE 容器模式中,所有停駐窗格和應用程式工具列都會隱藏。 如果您已將 CDockingManager::m_bHideDockingBarsInContainerMode 設為 TRUE,窗格也會隱藏在此模式中。

CDockingManager::IsPointNearDockSite

判斷指定的點是否靠近停駐月臺。

BOOL IsPointNearDockSite(
    CPoint point,
    DWORD& dwBarAlignment,
    BOOL& bOuterEdge) const;

參數


[in]指定的點。

dwBarAlignment
[out]指定點接近的邊緣。 可能的值為CBRS_ALIGN_LEFT、CBRS_ALIGN_RIGHT、CBRS_ALIGN_TOP和CBRS_ALIGN_BOTTOM。

bOuterEdge
[out]如果點靠近停駐點的外部框線,則為 TRUE;否則為 FALSE。

傳回值

如果點靠近停駐點,則為 TRUE;否則為 FALSE。

CDockingManager::IsPrintPreviewValid

判斷是否已設定預覽列印模式。

BOOL IsPrintPreviewValid() const;

傳回值

如果已設定預覽列印模式,則為 TRUE;否則為 FALSE。

CDockingManager::LoadState

從登錄載入停駐管理員的狀態。

virtual BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    UINT uiID = (UINT) -1);

參數

lpszProfileName
[in]設定檔名稱。

uiID
[in]停駐管理員的識別碼。

傳回值

如果成功載入停駐管理員狀態,則為 TRUE;否則為 FALSE。

CDockingManager::LockUpdate

鎖定指定的視窗。

void LockUpdate(BOOL bLock);

參數


[in]如果視窗已鎖定,則為 TRUE;否則為 FALSE。

備註

鎖定視窗時,無法移動它,而且無法重新繪製。

CDockingManager::m_bHideDockingBarsInContainerMode

指定停駐管理員是否在 OLE 容器模式中隱藏窗格。

AFX_IMPORT_DATA static BOOL m_bHideDockingBarsInContainerMode;

備註

如果您想要讓應用程式處於 OLE 容器模式時,將所有窗格停駐在主框架上,請將此值設定為 FALSE。 根據預設,此值為 TRUE。

CDockingManager::m_dockModeGlobal

指定全域停駐模式。

AFX_IMPORT_DATA static AFX_DOCK_TYPE m_dockModeGlobal;

備註

根據預設,每個停駐窗格都會使用此停駐模式。 如需此欄位可設定為之值的詳細資訊,請參閱 CBasePane::GetDockingMode

CDockingManager::m_nDockSensitivity

指定停駐敏感度。

AFX_IMPORT_DATA static int m_nDockSensitivity;

備註

停駐敏感度定義浮動窗格在架構將停駐狀態變更為停駐之前,如何接近停駐窗格、停駐月臺或其他窗格。

CDockingManager::m_nTimeOutBeforeDockingBarDock

指定停駐窗格停駐在立即停駐模式之前的時間,以毫秒為單位。

static UINT m_nTimeOutBeforeDockingBarDock;

備註

在停駐窗格之前,架構會等候指定的時間長度。 這可防止窗格在使用者仍在拖曳時意外停駐到某個位置。

CDockingManager::m_nTimeOutBeforeToolBarDock

指定工具列停駐到主框架視窗之前的時間,以毫秒為單位。

static UINT m_nTimeOutBeforeToolBarDock;

備註

在停駐工具列之前,架構會等候指定的時間長度。 這可防止工具列在使用者仍在拖曳時意外停駐到某個位置。

CDockingManager::OnActivateFrame

當框架視窗為使用中或停用時,由架構呼叫。

virtual void OnActivateFrame(BOOL bActivate);

參數

bActivate
[in]如果為 TRUE,則會讓框架視窗成為使用中;如果為 FALSE,則會停用框架視窗。

CDockingManager::OnClosePopupMenu

架構在作用中的快顯功能表處理 WM_DESTROY 訊息時所呼叫。

void OnClosePopupMenu();

備註

架構會在即將關閉目前主視窗時傳送WM_DESTROY訊息。 覆寫此方法,以在物件處理WM_DESTROY訊息時 CMFCPopupMenu ,處理屬於框架視窗的物件通知 CMFCPopupMenu

CDockingManager::OnMoveMiniFrame

由架構呼叫以移動迷你框架視窗。

virtual BOOL OnMoveMiniFrame(CWnd* pFrame);

參數

pFrame
[in]迷你框架視窗的指標。

傳回值

如果方法成功,則為 TRUE;否則為 FALSE。

CDockingManager::OnPaneCoNtextMenu

架構在建置具有窗格清單的功能表時呼叫。

void OnPaneContextMenu(CPoint point);

參數


[in]指定功能表的位置。

CDockingManager::P aneFromPoint

傳回包含指定點的窗格。

virtual CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    bool bExactBar = false,
    CRuntimeClass* pRTCBarType = NULL,
    BOOL bCheckVisibility = FALSE,
    const CBasePane* pBarToIgnore = NULL) const;

virtual CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    DWORD& dwAlignment,
    CRuntimeClass* pRTCBarType = NULL,
    const CBasePane* pBarToIgnore = NULL) const;

參數


[in]指定要檢查的點,以螢幕座標為單位。

nSensitivity
[in]要擴充每個核取窗格之視窗矩形的值。 如果指定的點位於這個擴充區域中,窗格會滿足搜尋準則。

bExactBar
[in]TRUE 表示忽略 nSensitivity 參數,否則為 FALSE。

pRTCBarType
[in]如果不是 Null,此方法只會搜尋指定類型的窗格。

bCheckVisibility
[in]TRUE 表示只檢查可見窗格;否則為 FALSE。

dwAlignment
[out]如果在指定點找到窗格,此參數會包含最接近指定點之窗格的一側。 如需詳細資訊,請參閱<備註>一節。

pBarToIgnore
[in]如果不是 Null,此方法會忽略此參數所指定的窗格。

傳回值

包含指定點的 CBasePane 衍生物件,如果沒有找到任何窗格,則為 Null。

備註

當函式傳回並找到窗格時, dwAlignment 會包含指定點的對齊方式。 例如,如果點最接近窗格頂端, dwAlignment 會設定為 CBRS_ALIGN_TOP。

CDockingManager::P rocessPaneCoNtextMenuCommand

由架構呼叫以選取或清除指定命令的核取方塊,並重新計算顯示窗格的配置。

BOOL ProcessPaneContextMenuCommand(
    UINT nID,
    int nCode,
    void* pExtra,
    AFX_CMDHANDLERINFO* pHandlerInfo);

參數

nID
[in]功能表中控制項列的識別碼。

nCode
[in]命令通知程式碼。

pExtra
[in]如果 nCode 已CN_UPDATE_COMMAND_UI,則為 void 的指標 CCmdUI

pHandlerInfo
[in]資訊結構的指標。 不使用這個參數。

傳回值

如果 pEXtra 不是 Null, 且 nCode 等於 CN_UPDATE_COMMAND_UI,則為 TRUE,如果有具有指定 nID 的控制列,則為 TRUE。

CDockingManager::RecalcLayout

重新計算控制項清單中存在的控制項內部配置。

virtual void RecalcLayout(BOOL bNotify = TRUE);

參數

bNotify
[in]不使用此參數。

CDockingManager::ReleaseEmptyPaneContainers

釋放空白窗格容器。

void ReleaseEmptyPaneContainers();

CDockingManager::RemoveHiddenMDITabbedBar

移除指定的隱藏列窗格。

void RemoveHiddenMDITabbedBar(CDockablePane* pBar);

參數

pBar
[in]要移除之列窗格的指標。

CDockingManager::RemoveMiniFrame

從迷你框架清單中移除指定的框架。

virtual BOOL RemoveMiniFrame(CPaneFrameWnd* pWnd);

參數

pWnd
[in]要移除之框架的指標。

傳回值

如果移除指定的框架,則為 TRUE;否則為 FALSE。

CDockingManager::RemovePaneFromDockManager

取消註冊窗格,並將它從停駐管理員中的清單中移除。

void RemovePaneFromDockManager(
    CBasePane* pWnd,
    BOOL bDestroy,
    BOOL bAdjustLayout,
    BOOL bAutoHide = FALSE,
    CBasePane* pBarReplacement = NULL);

參數

pWnd
[in]要移除之窗格的指標。

bDestroy
[in]如果為 TRUE,則會終結移除的窗格。

bAdjustLayout
[in]如果為 TRUE,請立即調整停駐配置。

bAutoHide
[in]如果為 TRUE,則會從自動隱藏列清單中移除窗格。 如果為 FALSE,則會從一般窗格清單中移除窗格。

pBarReplacement
[in]取代已移除窗格之窗格的指標。

CDockingManager::ReplacePane

以一個窗格取代另一個。

BOOL ReplacePane(
    CDockablePane* pOriginalBar,
    CDockablePane* pNewBar);

參數

pOriginalBar
[in]原始窗格的指標。

pNewBar
[in]取代原始窗格之窗格的指標。

傳回值

如果已成功取代窗格,則為 TRUE;否則為 FALSE。

CDockingManager::ResortMiniFramesForZOrder

採用迷你框架清單中的框架。

void ResortMiniFramesForZOrder();

CDockingManager::SaveState

將停駐管理員的狀態儲存至登錄。

virtual BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    UINT uiID = (UINT) -1);

參數

lpszProfileName
[in]登錄機碼的路徑。

uiID
[in]停駐管理員識別碼。

傳回值

如果成功儲存狀態,則為 TRUE;否則為 FALSE。

備註

將停駐管理員的狀態儲存至登錄涉及儲存控制列的狀態、自動隱藏列的狀態,以及停駐管理員中存在的迷你框架狀態。

CDockingManager::SendMessageToMiniFrames

將指定的訊息傳送至所有迷你畫面。

BOOL SendMessageToMiniFrames(
    UINT uMessage,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

參數

uMessage
[in]要傳送的訊息。

wParam
[in]其他訊息相依資訊。

lParam
[in]其他訊息相依資訊。

傳回值

TRUE 一律為 TRUE。

CDockingManager::Serialize

將停駐管理員寫入封存。

void Serialize(CArchive& ar);

參數

Ar
[in]封存物件的參考。

備註

將停駐管理員寫入封存涉及決定停駐控制列和滑杆的數目,以及將控制列、迷你框架、自動隱藏列和 MDI 索引標籤列寫入封存。

CDockingManager::SetAutohideZOrder

設定控制列和指定窗格的大小、寬度和高度。

void SetAutohideZOrder(CDockablePane* pAHDockingBar);

參數

pAHDockingBar
[in]可停駐窗格的指標。

CDockingManager::SetDockingMode

設定停駐模式。

static void SetDockingMode(
    AFX_DOCK_TYPE dockMode,
    AFX_SMARTDOCK_THEME theme = AFX_SDT_DEFAULT);

參數

dockMode
指定新的停駐模式。 如需詳細資訊,請參閱<備註>一節。

主題
指定要用於智慧停駐標記的主題。 它可以是下列其中一個列舉值:AFX_SDT_DEFAULT、AFX_SDT_VS2005、AFX_SDT_VS2008。

備註

呼叫這個靜態方法以設定停駐模式。

dockMode 可以是下列其中一個值:

  • DT_STANDARD - 在 Visual Studio .NET 2003 中實作的標準停駐模式。 窗格會拖曳,而不需拖曳內容。

  • DT_IMMEDIATE - Microsoft Visio 中實作的立即停駐模式。 窗格會使用拖曳內容來拖曳,但不會顯示任何標記。

  • DT_SMART - Visual Studio 2005 中實作的智慧停駐模式。 窗格會使用拖曳內容來拖曳,並顯示智慧標籤,以顯示窗格可停駐的位置。

CDockingManager::SetDockState

設定控制列、迷你畫面格和自動隱藏列的停駐狀態。

virtual void SetDockState();

CDockingManager::SetPrintPreviewMode

設定預覽列印中顯示的橫條預覽列印模式。

void SetPrintPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

參數

bPreview
[in]如果設定預覽列印模式,則為 TRUE;否則為 FALSE。

pState
[in]預覽狀態的指標。 不使用這個參數。

CDockingManager::SetSmartDockingParams

設定定義智慧停駐行為的參數。

static void SetSmartDockingParams(CSmartDockingInfo& params);

參數

params
[in, out]定義智慧停駐的參數。

備註

如果您想要自訂智慧停駐標記的外觀、色彩或形狀,請呼叫此方法。

若要使用預設尋找智慧停駐標記,請將未初始化的 CSmartDockingInfo 類別 實例傳遞至 參數

CDockingManager::ShowDelayShowMiniFrames

顯示或隱藏迷你框架的視窗。

void ShowDelayShowMiniFrames(BOOL bshow);

參數

bShow
[in]TRUE 表示讓顯示框架的視窗成為使用中;FALSE 可隱藏框架的視窗。

CDockingManager::ShowPanes

顯示或隱藏控制項和自動隱藏列的窗格。

virtual BOOL ShowPanes(BOOL bShow);

參數

bShow
[in]TRUE 可顯示窗格;FALSE 可隱藏窗格。

傳回值

一律為 FALSE。

CDockingManager::StartSDocking

根據智慧停駐管理員的對齊方式,啟動指定視窗的智慧停駐。

void StartSDocking(CWnd* pDockingWnd);

參數

pDockingWnd
[in]要停駐之視窗的指標。

CDockingManager::StopSDocking

停止智慧停駐。

void StopSDocking();

CDockingManager::GetSmartDockingTheme

靜態方法,會傳回用來顯示智慧停駐標記的主題。

static AFX_SMARTDOCK_THEME __stdcall GetSmartDockingTheme();

傳回值

傳回下列其中一個列舉值:AFX_SDT_DEFAULT、AFX_SDT_VS2005、AFX_SDT_VS2008。

備註

另請參閱

階層架構圖表
類別
CObject 類別
CFrameWndEx 類別
CDockablePane 類別
CPaneFrameWnd 類別