CDockingManager 類別
實作控制配置停駐於主框架視窗中的核心功能。
語法
class CDockingManager : public CObject
成員
公用方法
資料成員
名稱 | 描述 |
---|---|
CDockingManager::m_bHideDockingBarsInContainerMode | 指定停駐管理員是否在 OLE 容器模式中隱藏窗格。 |
CDockingManager::m_dockModeGlobal | 指定全域停駐模式。 |
CDockingManager::m_nDockSensitivity | 指定停駐敏感度。 |
CDockingManager::m_nTimeOutBeforeDockingBarDock | 指定停駐窗格停駐在立即停駐模式之前的時間,以毫秒為單位。 |
CDockingManager::m_nTimeOutBeforeToolBarDock | 指定工具列停駐到主框架視窗之前的時間,以毫秒為單位。 |
備註
主框架視窗會自動建立並初始化這個類別。
停駐管理員物件會保存停駐配置中的所有窗格清單,以及屬於主框架視窗的所有 CPaneFrameWnd 視窗清單。
類別 CDockingManager
會實作一些可用來尋找窗格或 CPaneFrameWnd
窗口的服務。 您通常不會直接呼叫這些服務,因為它們會包裝在主框架窗口物件中。 如需詳細資訊,請參閱 CPaneFrameWnd 類別。
自訂秘訣
下列秘訣適用於 CDockingManager
物件:
CDockingManager 類別 支持這些停駐模式:
AFX_DOCK_TYPE::DT_IMMEDIATE
AFX_DOCK_TYPE::DT_STANDARD
AFX_DOCK_TYPE::DT_SMART
這些停駐模式是由 CDockingManager::m_dockModeGlobal 所定義,而是由呼叫 CDockingManager::SetDockingMode 來設定。
如果您想要建立非浮動、不可重設大小的窗格,請呼叫 CDockingManager::AddPane 方法。 這個方法會向停駐管理員註冊窗格,負責窗格的配置。
範例
下列範例示範如何使用 類別中的 CDockingManager
各種方法來設定 CDockingManager
物件。 此範例示範如何顯示其他按鈕,以在所有停駐窗格的標題上開啟快捷功能表,以及如何設定物件的停駐模式。 此代碼段是Visual Studio示範範例的一部分。
CDockingManager *pDockManager = GetDockingManager();
ASSERT_VALID(pDockManager);
pDockManager->AdjustPaneFrames();
pDockManager->EnableDockSiteMenu();
pDockManager->SetDockingMode(DT_STANDARD);
繼承階層架構
需求
標頭: 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;
參數
point
[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);
參數
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;
參數
point
[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 - Visio 中實作 Microsoft的即時停駐模式。 窗格會使用拖曳內容來拖曳,但不會顯示任何標記。
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 類別