共用方式為


CPane 類別

類別CPane是 CControlBar 類別增強功能。 如果您要升級現有的 MFC 專案,請將 的所有專案 CControlBar 取代為 CPane

語法

class CPane : public CBasePane

成員

公用建構函式

名稱 描述
CPane::~CPane 解構函式。

公用方法

名稱 描述
CPane::AdjustSizeImmediate 立即重新計算窗格的配置。
CPane::AllocElements 配置記憶體以供內部使用。
CPane::AllowShowOnPaneMenu 指定窗格是否列在應用程式運行時間產生的窗格清單中。
CPane::CalcAvailableSize 計算指定矩形與目前視窗矩形之間的大小差異。
CPane::CalcInsideRect 計算窗格內部矩形,並考慮框線和夾子。
CPane::CalcRecentDockedRect 計算最近停駐的矩形。
CPane::CalcSize 計算窗格的大小。
CPane::CanBeDocked 判斷窗格是否可以停駐在指定的基底窗格。
CPane::CanBeTabbedDocument 判斷窗格是否可以轉換成索引標籤檔。
CPane::ConvertToTabbedDocument 將可停駐窗格轉換成索引標籤檔。
CPane::CopyState 複製窗格的狀態。 (覆寫 CBasePane::CopyState.)
CPane::Create 建立控件列並將它附加至 CPane 物件。
CPane::CreateDefaultMiniframe 建立浮動窗格的迷你框架視窗。
CPane::CreateEx 建立控件列並將它附加至 CPane 物件。
CPane::CreateObject 由建立此類別類型的動態執行個體架構所使用。
CPane::D ockByMouse 使用滑鼠停駐方法來停駐窗格。
CPane::D ockPane 將浮動窗格停駐到基底窗格。
CPane::D ockPaneStandard 使用大綱(標準)停駐來停駐窗格。
CPane::D ockToFrameWindow 將可停駐窗格停駐到框架。 (覆寫 CBasePane::DockToFrameWindow。)
CPane::D oesAllowSiblingBars 指出您是否可以在停駐目前窗格所在的相同數據列停駐另一個窗格。
CPane::FloatPane 浮動窗格。
CPane::GetAvailableExpandSize 傳回窗格可以展開的數量,以像素為單位。
CPane::GetAvailableStretchSize 傳回窗格可以壓縮的數量,以像素為單位。
CPane::GetBorders 傳回窗格框線的寬度。
CPane::GetClientHotSpot 回窗格的熱點
CPane::GetDockSiteRow 傳回停駐窗格所在的停駐列。
CPane::GetExclusiveRowMode 判斷窗格是否處於獨佔數據列模式。
CPane::GetHotSpot 傳回儲存在基礎 CMFCDragFrameImpl 物件中的作用點。
CPane::GetMinSize 擷取窗格的最小允許大小。
CPane::GetPaneName 擷取窗格的標題。
CPane::GetResizeStep 在內部使用。
CPane::GetThisClass 由架構用來取得與這個類別類型相關聯之 CRuntimeClass 物件的指標。
CPane::GetVirtualRect 擷取窗格的虛擬矩形
CPane::IsChangeState 移動窗格時,此方法會分析窗格相對於其他窗格、停駐列和迷你框架視窗的位置,並傳回適當的AFX_CS_STATUS值。
CPane::IsDragMode 指定是否要拖曳窗格。
CPane::IsInFloatingMultiPaneFrameWnd 指定窗格是否位於多窗格框架視窗中。 (覆寫 CBasePane::IsInFloatingMultiPaneFrameWnd。)
CPane::IsLeftOf 判斷窗格是指定矩形的左方或上方。
CPane::IsResizable 判斷窗格是否可以重設大小。 (覆寫 CBasePane::IsResizable.)
CPane::IsTabbed 判斷是否已將窗格插入索引卷標式視窗的索引卷標控件中。 (覆寫 CBasePane::IsTabbed.)
CPane::LoadState 從登錄載入窗格的狀態。 (覆寫 CBasePane::LoadState.)
CPane::MoveByAlignment 依指定的數量移動窗格和虛擬矩形。
CPane::MovePane 將窗格移至指定的矩形。
CPane::OnAfterChangeParent 當窗格的父代變更時,由架構呼叫。
CPane::OnBeforeChangeParent 當窗格的父代即將變更時,由架構呼叫。
CPane::OnPressCloseButton 當使用者選擇窗格標題上的 [關閉] 按鈕時,由架構呼叫。
CPane::OnProcessDblClk 在內部使用。
CPane::OnShowControlBarMenu 當特殊窗格功能表即將顯示時由架構呼叫。
CPane::OnShowControlBarMenu 當特殊窗格功能表即將顯示時由架構呼叫。
CPane::PrepareToDock 在內部使用。
CPane::RecalcLayout 重新計算窗格的配置資訊。 (覆寫 CBasePane::RecalcLayout.)
CPane::SaveState 將窗格的狀態儲存至登錄。 (覆寫 CBasePane::SaveState.)
CPane::SetActiveInGroup 將窗格標示為使用中。
CPane::SetBorders 設定窗格的框線值。
CPane::SetClientHotSpot 設定窗格的熱點。
CPane::SetDockState 還原窗格的停駐狀態資訊。
CPane::SetExclusiveRowMode 啟用或停用獨占數據列模式。
CPane::SetMiniFrameRTC 設定預設迷你框架視窗的運行時間類別資訊。
CPane::SetMinSize 設定窗格的最小允許大小。
CPane::SetVirtualRect 設定窗格的虛擬矩形
CPane::StretchPaneDeferWndPos 根據停駐樣式垂直或水平縮放窗格。
CPane::ToggleAutoHide 切換自動隱藏模式。
CPane::UndockPane 從停駐月臺、預設滑桿或目前停駐的迷你框架窗口移除窗格。 (覆寫 CBasePane::UndockPane.)
CPane::UpdateVirtualRect 更新虛擬矩形。

受保護的方法

名稱 描述
CPane::OnAfterDock 當窗格停駐時,由架構呼叫。
CPane::OnAfterFloat 當窗格已浮動時,由架構呼叫。
CPane::OnBeforeDock 當窗格即將停駐時,由架構呼叫。
CPane::OnBeforeFloat 當窗格即將浮出時,由架構呼叫。

資料成員

名稱 描述
CPane::m_bHandleMinSize 為窗格啟用最小大小的一致處理。
CPane::m_recentDockInfo 包含最近的停駐資訊。

備註

一般而言, CPane 物件不會直接具現化。 如果您需要具有停駐功能的窗格,請從 CDockablePane 衍生物件。 如果您需要工具列功能,請從 CMFCToolBar 衍生物件。

當您從CPane衍生類別時,它可以停駐在 CDockSite,而且可以在 CPaneFrameWnd浮動。

繼承階層架構

CObject

CCmdTarget

CWnd

CBasePane

CPane

需求

標頭: afxPane.h

CPane::AdjustSizeImmediate

立即重新計算窗格的配置。

virtual void AdjustSizeImmediate(BOOL bRecalcLayout = TRUE);

參數

bRecalcLayout
[in]TRUE 可自動重新計算窗格的配置;否則為 FALSE。

備註

當您動態變更窗格的配置時,請呼叫這個方法。 例如,當您隱藏或顯示工具列按鈕時,可能會想要呼叫此方法。

CPane::AllocElements

配置記憶體以供內部使用。

BOOL AllocElements(
    int nElements,
    int cbElement);

參數

nElements
[in]要配置記憶體的項目數目。

cbElement
[in]元素的大小,以位元組為單位。

傳回值

如果記憶體配置失敗,則為 FALSE;否則為TRUE。

CPane::AllowShowOnPaneMenu

指定窗格是否列在應用程式運行時間產生的窗格清單中。

virtual BOOL AllowShowOnPaneMenu() const;

傳回值

如果窗格顯示在清單中,則為TRUE;否則為 FALSE。 基底實作一律會傳回 TRUE。

備註

AppWizard 產生的應用程式包含功能表選項,其中列出它所包含的窗格。 這個方法會判斷窗格是否顯示在清單中。

CPane::CalcAvailableSize

計算指定矩形與目前視窗矩形之間的大小差異。

virtual CSize CalcAvailableSize(CRect rectRequired);

參數

rectRequired
[in]必要的矩形。

傳回值

rectRequired 與目前視窗矩形之間的寬度和高度差異。

CPane::CalcInsideRect

計算機表格的內部矩形,包括框線和夾住器。

void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

參數

rect
[out]包含窗格工作區的大小和位移。

bHorz
[in]如果窗格為水準方向,則為TRUE;否則為 FALSE。

備註

架構必須重新計算窗格的配置時,架構會呼叫此方法。 rect 參數會填入窗格工作區的大小和位移。 這包括其框線和夾子。

CPane::CalcRecentDockedRect

計算最近停駐的矩形。

void CalcRecentDockedRect();

備註

此方法會更新 CPane::m_recentDockInfo

CPane::CalcSize

計算窗格的大小。

virtual CSize CalcSize(BOOL bVertDock);

參數

bVertDock
[in]如果窗格垂直停駐,則為TRUE,否則為 FALSE。

傳回值

這個方法的預設實作會傳回大小 (0, 0)。

備註

衍生類別應該覆寫這個方法。

CPane::CanBeDocked

判斷窗格是否可以停駐在指定的基底窗格。

virtual BOOL CanBeDocked(CBasePane* pDockBar) const;

參數

pDockBar
[in]指定要停駐此窗格的窗格。

傳回值

如果此窗格可以停駐在指定的停駐窗格,則為TRUE;否則為 FALSE。

備註

架構通常會呼叫這個方法,以判斷窗格是否可以停駐在指定的停駐窗格。 若要判斷是否可以停駐窗格,此方法會評估窗格目前啟用的停駐對齊方式。

您可以藉由呼叫 CBasePane::EnableDocking 來啟用框架視窗各側的停駐。

CPane::CanBeTabbedDocument

判斷窗格是否可以轉換成索引標籤檔。

virtual BOOL CanBeTabbedDocument() const;

傳回值

如果窗格可以轉換成索引卷標式檔,則為TRUE;否則為 FALSE。

備註

如果您想要防止窗格轉換成索引卷標式檔,請覆寫衍生類別中的這個方法,並傳回 FALSE。 索引標籤式檔將不會列在 [視窗位置] 選單中。

CPane::ConvertToTabbedDocument

將可停駐窗格轉換成索引標籤檔。

virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);

參數

bActiveTabOnly
[in]未在中使用 CPane::ConvertToTabbedDocument

備註

只有可停駐窗格可以轉換成索引標籤檔。 如需詳細資訊,請參閱 CDockablePane::ConvertToTabbedDocument

CPane::CopyState

複製窗格的狀態。

virtual void CopyState(CPane* pOrgBar);

參數

pOrgBar
[in]窗格的指標。

備註

這個方法會將 pOrgBar 的狀態複製到目前的窗格。

CPane::Create

建立控件列,並將它附加至 CPane 物件。

virtual BOOL Create(
    LPCTSTR lpszClassName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
    CCreateContext* pContext = NULL);

參數

lpszClassName
[in]指定 Windows 類別的名稱。

dwStyle
[in]指定視窗樣式屬性。 如需詳細資訊,請參閱 窗口樣式

rect
[in]在用戶端座標中 指定 pParentWnd 視窗的初始大小和位置。

pParentWnd
[in, out]指定此窗格的父視窗。

nID
[in]指定窗格的識別碼。

dwControlBarStyle
[in]指定窗格的樣式。 如需詳細資訊,請參閱 CBasePane::CreateEx

pContext
[in, out]指定窗格的建立內容。

傳回值

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

備註

此方法會建立 Windows 窗格,並將它附加至 CPane 物件。

如果您尚未在呼叫 Create之前明確初始化 CPane::m_recentDockInfo ,則參數 rect 會在浮動或停駐窗格時當做矩形使用。

CPane::CreateDefaultMiniframe

建立浮動窗格的迷你框架視窗。

virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial);

參數

rectInitial
[in]指定要建立之迷你框架視窗的初始大小和位置,以螢幕座標為單位。

傳回值

新建立的迷你框架視窗。

備註

架構會呼叫這個方法,以在浮動窗格時建立迷你框架視窗。 迷你框架視窗的類型可以是 CPaneFrameWnd 或 CMultiPaneFrameWnd 類型。 如果窗格具有AFX_CBRS_FLOAT_MULTI樣式,則會建立多框架視窗。

迷你框架視窗的運行時間類別資訊會儲存在 成員中 CPane::m_pMiniFrameRTC 。 如果您決定建立自定義迷你框架視窗,您可以使用衍生類別來設定這個成員。

CPane::CreateEx

建立控件列,並將它附加至 CPane 物件。

virtual BOOL CreateEx(
    DWORD dwStyleEx,
    LPCTSTR lpszClassName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
    CCreateContext* pContext = NULL);

參數

dwStyleEx
[in]指定擴充視窗樣式屬性。 如需詳細資訊,請參閱 擴充窗口樣式

lpszClassName
[in]指定 Windows 類別的名稱。

dwStyle
[in]指定視窗樣式屬性。 如需詳細資訊,請參閱 窗口樣式

rect
[in]在用戶端座標中 指定 pParentWnd 視窗的初始大小和位置。

pParentWnd
[in, out]指定此窗格的父視窗。

nID
[in]指定窗格的識別碼。

dwControlBarStyle
[in]指定窗格的樣式。 如需詳細資訊,請參閱 CBasePane::CreateEx

pContext
[in, out]指定窗格的建立內容。

傳回值

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

備註

此方法會建立 Windows 窗格,並將它附加至 CPane 物件。

如果您尚未在呼叫 CreateEx之前明確初始化 CPane::m_recentDockInfo ,則參數 rect 會在浮動或停駐窗格時當做矩形使用。

CPane::D ockByMouse

使用滑鼠停駐窗格。

virtual BOOL DockByMouse(CBasePane* pDockBar);

參數

pDockBar
[in]指定要停駐此窗格的基底窗格。

傳回值

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

CPane::D ockPane

將浮動窗格停駐到基底窗格。

virtual BOOL DockPane(
    CBasePane* pDockBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

參數

pDockBar
[in, out]指定要將此窗格停駐到的基底窗格。

lpRect
[in]指定要停駐此窗格之基底窗格上的矩形。

dockMethod
[in]指定要使用的停駐方法。 可用的選項如下:

選項 描述
DM_UNKNOWN 當停駐方法未知時,架構會使用此選項。 窗格不會儲存其最新的浮動位置。 當您不需要儲存最近的浮動位置時,您也可以使用此選項,以程式設計方式固定窗格。
DM_MOUSE 在內部使用。
DM_DBL_CLICK 按兩下夾夾時,會使用此選項。 窗格會重新定位在其最近的停駐位置。 如果按兩下來取消停駐窗格,窗格會重新定位在其最近的浮動位置。
DM_SHOW 這個選項可用來以程式設計方式固定窗格。 窗格會儲存其最新的浮動位置。
DM_RECT 窗格停駐在 lpRect指定的區域中。
DM_STANDARD 當您使用此選項時,架構會在移動窗格時,將窗格繪製為大綱框架。

傳回值

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

備註

這個方法會將窗格停駐到 pDockBar 參數所指定的基底窗格。 您必須先呼叫 CBasePane::EnableDocking 來啟用停駐。

CPane::D ockPaneStandard

使用大綱(標準)停駐來停駐窗格。

virtual CPane* DockPaneStandard(BOOL& bWasDocked);

參數

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

傳回值

這個方法一律會傳 this 回指標。

備註

這個方法只適用於衍生自 CDockablePane 類別窗格。 如需詳細資訊,請參閱 CDockablePane::D ockPaneStandard

CPane::D ockToFrameWindow

將可停駐窗格停駐到框架。

virtual BOOL DockToFrameWindow(
    DWORD dwAlignment,
    LPCRECT lpRect = NULL,
    DWORD dwDockFlags = DT_DOCK_LAST,
    CBasePane* pRelativeBar = NULL,
    int nRelativeIndex = -1,
    BOOL bOuterEdge = FALSE);

參數

dwAlignment
[in]您想要停駐窗格之父框架的一側。

lpRect
[in]指定的大小。

dwDockFlags
[in]忽視。

pRelativeBar
[in]忽視。

nRelativeIndex
[in]忽視。

bOuterEdge
[in]如果 TRUE 和 dwAlignment指定的側邊有其他可停駐窗格,窗格會停駐在其他窗格外,靠近父框架的邊緣。 如果為 FALSE,窗格會停駐在靠近工作區中心的地方。

傳回值

如果無法建立窗格分隔器( CPaneDivider 類別),則為 FALSE,否則為 TRUE。

備註

CPane::D oesAllowSiblingBars

指出您是否可以在停駐目前窗格所在的相同數據列停駐另一個窗格。

virtual BOOL DoesAllowSiblingBars() const;

傳回值

如果此窗格可以停駐至與本身相同數據列上的另一個窗格,則為TRUE;否則為 FALSE。

備註

您可以呼叫 CPane::SetExclusiveRowMode 來啟用或停用此行為。

根據預設,工具列已停用獨佔數據列模式,且功能表欄已啟用獨佔數據列模式。

CPane::FloatPane

浮動窗格。

virtual BOOL FloatPane(
    CRect rectFloat,
    AFX_DOCK_METHOD dockMethod = DM_UNKNOWN,
    bool bShow = true);

參數

rectFloat
[in]指定在螢幕座標中的位置,以在窗格浮動時放置。

dockMethod
[in]指定浮動窗格時要使用的停駐方法。 如需可能值的清單,請參閱 CPane::D ockPane

bShow
[in]TRUE 表示在浮動時顯示窗格;否則為 FALSE。

傳回值

如果窗格已成功浮動,或無法浮動窗格,則為TRUE,因為 CBasePane::CanFloat 會傳回 FALSE,否則為 FALSE。

備註

呼叫這個方法,以將窗格浮動在 rectFloat 參數所指定的位置。 這個方法會自動為窗格建立父迷你框架視窗。

CPane::GetAvailableExpandSize

傳回窗格可以展開的數量,以像素為單位。

virtual int GetAvailableExpandSize() const;

傳回值

如果窗格水準停駐,傳回值會是可用的寬度;否則,傳回值是可用的高度。

備註

CPane::GetAvailableStretchSize

傳回窗格可以壓縮的數量,以像素為單位。

virtual int GetAvailableStretchSize() const;

傳回值

窗格可以壓縮的數量,以像素為單位。 如果窗格水準停駐,則此數量為可用的寬度;否則為可用的高度。

備註

可用的延展大小是藉由從目前大小 (CWnd::GetWindowRect) 減去窗格 (CPane::GetMinSize) 的最小允許大小來計算。

CPane::GetBorders

傳回窗格框線的寬度。

CRect GetBorders() const;

傳回值

CRect 物件,其中包含窗格每一側的目前寬度,以像素為單位。 例如,對象成員CRect的值left是左框線的寬度。

備註

若要設定框線的大小,請呼叫 CPane::SetBorders

CPane::GetClientHotSpot

回窗格的熱點

CPoint GetClientHotSpot() const;

傳回值

備註

作用 點是 用戶選取並保留來移動窗格的窗格上的點。 當窗格從停駐位置移動時,會使用作用點來平滑動畫。

CPane::GetDockSiteRow

傳回停駐窗格所在的停駐列 ( CDockingPanesRow 類別)。

CDockingPanesRow* GetDockSiteRow() const;

傳回值

CDockingPanesRow* ,指向停駐窗格所在的停駐列,如果窗格未停駐,則為 NULL。

CPane::GetExclusiveRowMode

判斷窗格是否處於獨佔數據列模式。

virtual BOOL GetExclusiveRowMode() const;

傳回值

如果窗格處於獨占數據列模式,則為TRUE;否則為 FALSE。

備註

如需獨佔數據列模式的詳細資訊,請參閱 CPane::SetExclusiveRowMode

CPane::GetHotSpot

傳回儲存在基礎 CMFCDragFrameImpl 物件中的作用點。

CPoint GetHotSpot() const;

傳回值

備註

類別 CPane 包含 CMFCDragFrameImpl 物件 m_dragFrameImpl,負責繪製使用者以標準停駐模式移動窗格時出現的矩形。 作用點是用來在用戶移動窗格時,繪製相對於目前滑鼠位置的矩形。

CPane::GetMinSize

擷取窗格的最小允許大小。

virtual void GetMinSize(CSize& size) const;

參數

size
[out] CSize 物件,填入允許的大小下限。

備註

CPane::GetPaneName

擷取窗格的標題。

virtual void GetPaneName(CString& strName) const;

參數

strName
[out] CString 填入標題名稱的物件。

備註

當窗格停駐或浮動時,窗格標題會顯示在標題區域中。 如果窗格是索引標籤群組的一部分,標題會顯示在索引標籤區域中。 如果窗格處於自動隱藏模式,標題會顯示在 上 CMFCAutoHideButton

CPane::GetVirtualRect

擷取窗格的虛擬矩形

void GetVirtualRect(CRect& rectVirtual) const;

參數

rectVirtual
[out] CRect 填入虛擬矩形的物件。

備註

移動窗格時,架構會將窗格的原始位置儲存在虛擬矩形中。 架構可以使用虛擬矩形來還原窗格的原始位置。

除非您以程式設計方式移動窗格,否則請勿呼叫與虛擬矩形相關的方法。

CPane::IsChangeState

移動窗格時,此方法會分析其相對於其他窗格、停駐列和迷你框架視窗的位置,並傳回適當的AFX_CS_STATUS值。

virtual AFX_CS_STATUS IsChangeState(
    int nOffset,
    CBasePane** ppTargetBar) const;

參數

nOffset
[in]指定停駐敏感度。 例如,從停駐列移動 nOffset 像素內的窗格將會停駐。

ppTargetBar
[in]當方法傳回時, ppTargetBar 會包含目前窗格應停駐的對象指標,如果不應該發生停駐,則為 NULL。

傳回值

下列其中一個AFX_CS_STATUS值:

Description
CS_NOTHING 窗格不在停駐月臺附近。 架構不會停駐窗格。
CS_DOCK_IMMEDIATELY 窗格位於停駐站臺上,且已啟用DT_IMMEDIATE樣式。 架構會立即停駐窗格。
CS_DELAY_DOCK 窗格位於停駐站臺上,該月臺是另一個停駐窗格或主框架的邊緣。 當使用者放開移動時,架構會停駐窗格。
CS_DELAY_DOCK_TO_TAB 窗格位於停駐站臺上,導致窗格停駐在索引卷標式視窗中。 當窗格位於另一個停駐窗格的標題或索引卷標窗格的索引卷標區域上時,就會發生這種情況。 當使用者放開移動時,架構會停駐窗格。

CPane::IsDragMode

指定是否移動窗格。

virtual BOOL IsDragMode() const;

傳回值

如果窗格正在移動,則為TRUE;否則為 FALSE。

備註

CPane::IsInFloatingMultiPaneFrameWnd

指定窗格是否位於多窗格框架視窗中( CMultiPaneFrameWnd 類別)。

virtual BOOL IsInFloatingMultiPaneFrameWnd() const;

傳回值

如果窗格位於多窗格框架視窗中,則為TRUE;否則為 FALSE。

備註

只有可停駐窗格可以在多窗格框架視窗中浮動。 因此, CPane::IsInFloatingMultiPaneFrameWnd 一律會傳回 FALSE。

CPane::IsLeftOf

判斷窗格是指定矩形的左方或上方。

bool IsLeftOf(
    CRect rect,
    bool bWindowRect = true) const;

參數

rect
[in] CRect 用於比較的物件。

bWindowRect
[in]如果為 TRUE, 則 rect 會假設包含螢幕座標;如果為 FALSE, 則 rect 會假設包含用戶端座標。

傳回值

備註

如果窗格水準停駐,這個方法會檢查其位置是否為 rect 否則,這個方法會檢查位置是否在 rect 上方

CPane::IsResizable

指定窗格是否可重設大小。

virtual BOOL IsResizable() const;

傳回值

如果窗格可重設大小,則為TRUE;否則為 FALSE。

備註

基底 CPane 對象無法重設大小。

停駐管理員會使用可重設大小的旗標來判斷窗格配置。 不可重設大小的窗格一律位於父框架的外部邊緣。

不可重設大小的窗格不能位於停駐容器中。

CPane::IsTabbed

判斷窗格是否已插入索引卷標視窗的索引標籤控件中。

virtual BOOL IsTabbed() const;

傳回值

如果窗格已索引標籤,則為TRUE;否則為 FALSE。

備註

索引標籤狀態會與浮動、停駐和自動隱藏狀態分開處理。

CPane::LoadState

從登錄載入窗格的狀態。

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

參數

lpszProfileName
[in]配置檔名稱。

nIndex
[in]配置檔索引。

uiID
[in]窗格標識碼。

傳回值

如果已成功載入窗格狀態,則為TRUE;否則為 FALSE。

備註

架構會呼叫此方法,以從登錄載入窗格狀態。 在衍生類別中覆寫它,以載入 CPane::SaveState儲存的其他資訊。

當您覆寫此方法時,也呼叫基底方法,如果基底方法傳回 FALSE,則傳回 FALSE。

CPane::m_bHandleMinSize

啟用最小窗格大小的一致處理。

AFX_IMPORT_DATA static BOOL m_bHandleMinSize;

備註

如果應用程式中的一或多個停駐窗格覆寫 GetMinSize,或如果您的應用程式呼叫 SetMinSize,您可能想要將此靜態成員設定為 TRUE,讓架構能夠一致地處理窗格的大小。

如果此值設定為 TRUE,則所有大小應低於其大小下限的窗格都會裁剪,而不會延展。 因為架構使用視窗區域進行窗格大小調整,因此如果此值設定為TRUE,請勿變更停駐窗格的視窗區域大小。

CPane::m_recentDockInfo

包含最近的停駐資訊。

CRecentDockSiteInfo m_recentDockInfo;

備註

架構會儲存此成員中窗格的最新停駐狀態資訊。

CPane::MoveByAlignment

依指定的數量移動窗格和虛擬矩形。

BOOL MoveByAlignment(
    DWORD dwAlignment,
    int nOffset);

參數

dwAlignment
[in]指定窗格對齊方式。

nOffset
[in]要移動窗格和虛擬矩形的量,以像素為單位。

傳回值

備註

dwAlignment 可以是下列任何值:

Description
CBRS_ALIGN_TOP 可讓窗格停駐到框架視窗工作區的頂端。
CBRS_ALIGN_BOTTOM 可讓窗格停駐到框架視窗工作區底部。
CBRS_ALIGN_LEFT 可讓窗格停駐在框架視窗工作區的左側。
CBRS_ALIGN_RIGHT 可讓窗格停駐在框架視窗工作區的右側。
CBRS_ALIGN_ANY 可讓窗格停駐到框架視窗工作區的任何一側。

如果 dwAlignment 包含CBRS_ALIGN_LEFT或CBRS_ALIGN_RIGHT旗標,則會水準移動窗格和虛擬矩形;否則,如果 dwAlignment 包含CBRS_ALIGN_TOP或CBRS_ALIGN_BOTTOM旗標,則會垂直移動窗格和虛擬矩形。

CPane::MovePane

將窗格移至指定的矩形。

virtual CSize MovePane(
    CRect rectNew,
    BOOL bForceMove,
    HDWP& hdwp);

參數

rectNew
[in]指定窗格的新矩形。

bForceMove
[in]如果為 TRUE,這個方法會忽略允許的窗格大小下限 ( CPane::GetMinSize),否則會視需要調整窗格,以確保至少允許的大小下限。

hdwp
[in] 未使用。

傳回值

CSize物件,其中包含新矩形與舊矩形之間的寬度和高度差異(舊矩形 - rectNew)。

備註

這個方法僅用於可停駐窗格。

CPane::OnAfterChangeParent

當窗格的父代變更時,由架構呼叫。

virtual void OnAfterChangeParent(CWnd* pWndOldParent);

參數

pWndOldParent
[in, out]窗格的上一個父視窗。

備註

當窗格的父代因為停駐或浮動作業而變更時,架構會呼叫這個方法。

CPane::OnAfterDock

當窗格停駐時,由架構呼叫。

virtual void OnAfterDock(
    CBasePane* pBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

參數

pBar
[in]不使用此參數。

lpRect
[in]不使用此參數。

dockMethod
[in]不使用此參數。

CPane::OnAfterFloat

在窗格浮動之後由架構呼叫。

virtual void OnAfterFloat();

備註

如果您想要在窗格浮動之後執行任何處理,可以在衍生類別中覆寫此方法。

CPane::OnBeforeChangeParent

當窗格的父代即將變更時,由架構呼叫。

virtual void OnBeforeChangeParent(
    CWnd* pWndNewParent,
    BOOL bDelay = FALSE);

參數

pWndNewParent
[in, out]指定新的父視窗。

bDelay
[in]TRUE 表示延遲全域停駐版面配置調整;否則為 FALSE。

備註

當窗格的父代即將變更時,架構會呼叫這個方法,因為窗格已停駐或浮動。

根據預設,窗格會藉由呼叫 CDockSite::RemovePane來取消註冊停駐窗格。

CPane::OnBeforeDock

當窗格即將停駐時,由架構呼叫。

virtual BOOL OnBeforeDock(
    CBasePane** ppDockBar,
    LPCRECT lpRect,
    AFX_DOCK_METHOD dockMethod);

參數

ppDockBar
[in, out]指定此窗格停駐的窗格。

lpRect
[in]指定停駐矩形。

dockMethod
[in]指定停駐方法。

傳回值

如果窗格可以停駐,則為TRUE。 如果函式傳回 FALSE,將會中止停駐作業。

備註

當窗格即將停駐時,架構會呼叫這個方法。 如果您想要在最終停駐窗格之前執行任何處理,則可以覆寫衍生類別中的這個方法。

CPane::OnBeforeFloat

當窗格即將浮動時,由架構呼叫。

virtual BOOL OnBeforeFloat(
    CRect& rectFloat,
    AFX_DOCK_METHOD dockMethod);

參數

rectFloat
[in]指定窗格處於浮動狀態時的位置和大小。

dockMethod
[in]指定窗格的停駐方法。

傳回值

如果窗格可以浮動,則為TRUE;否則為 FALSE。

備註

當窗格即將浮點時,架構會呼叫這個方法。 如果您想要在窗格最後浮動之前執行任何處理,則可以覆寫衍生類別中的這個方法。

CPane::OnPressCloseButton

當使用者按下窗格標題上的關閉按鈕時,由架構呼叫。

virtual void OnPressCloseButton();

備註

當使用者按下 窗格標題上的 [關閉 ] 按鈕時,架構會呼叫此方法。 若要接收 Close 事件的相關通知,您可以在衍生類別中覆寫此方法。

CPane::OnShowControlBarMenu

當特殊窗格功能表即將顯示時由架構呼叫。

virtual BOOL OnShowControlBarMenu(CPoint point);

參數

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

傳回值

如果可以顯示功能表,則為TRUE;否則為 FALSE。

備註

功能表包含數個專案,可讓您指定窗格的行為,也就是:浮動、停駐自動隱藏隱藏 您可以呼叫 CDockingManager::EnableDockSiteMenu,為所有窗格啟用此功能表。

CPane::RecalcLayout

重新計算窗格的配置資訊。

virtual void RecalcLayout();

備註

如果窗格停駐,這個方法會將窗格的大小設定為窗格的目前大小,以更新窗格的虛擬矩形。

如果窗格是浮動的,這個方法會通知父迷你框架,將窗格的大小調整為迷你框架的大小。 架構可確保迷你框架至少是窗格的最小允許大小( CPane::GetMinSize),並視需要調整迷你畫面的大小。

CPane::SaveState

將窗格的狀態儲存至登錄。

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

參數

lpszProfileName
[in]配置檔名稱。

nIndex
[in]配置檔索引。

uiID
[in]窗格標識碼。

傳回值

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

備註

架構會將窗格的狀態儲存至登錄時,會呼叫這個方法。 在衍生類別中覆寫 SaveState 以儲存其他資訊。

當您覆寫此方法時,也呼叫基底方法,如果基底方法傳回 FALSE,則傳回 FALSE。

CPane::SetActiveInGroup

將窗格標示為使用中。

virtual void SetActiveInGroup(BOOL bActive);

參數

bActive
[in]BOOL,指定窗格是否標示為使用中。

備註

顯示可停駐窗格或選擇自動隱藏按鈕時,對應的自動隱藏窗格會標示為作用中。

與窗格相關聯的自動隱藏按鈕外觀是以兩個因素為基礎。 如果窗格為使用中,且 static BOOL CMFCAutoHideButton::m_bOverlappingTabs 為TRUE,則架構會將自動隱藏按鈕顯示為圖示和標籤。 針對非使用中的窗格,架構只會顯示自動隱藏圖示。

如果 CMFCAutoHideButton::m_bOverlappingTabs 為 FALSE,或窗格不在群組中,架構會將相關聯的自動隱藏按鈕顯示為圖示和標籤。

CPane::SetBorders

設定窗格的框線值。

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

參數

cxLeft
[in]指定窗格左框線的寬度,以像素為單位。

cyTop
[in]指定窗格上框線的寬度,以像素為單位。

cxRight
[in]指定窗格右框線的寬度,以像素為單位。

cyBottom
[in]指定窗格下框線的寬度,以像素為單位。

lpRect
[in] CRect 物件,其中包含窗格每個框線的寬度,以像素為單位。

備註

呼叫此函式以設定窗格框線的大小。

CPane::SetClientHotSpot

設定窗格的熱點

void SetClientHotSpot(const CPoint& ptNew);

參數

ptNew
[in] CPoint 指定新作用點的物件。

備註

作用 點是 用戶選取並保留來移動窗格的窗格上的點。 當窗格從停駐位置拖曳時,會使用作用點來平滑動畫。

CPane::SetDockState

還原窗格的停駐狀態資訊。

virtual void SetDockState(CDockingManager* pDockManager);

參數

pDockManager
[in]主框架視窗停駐管理員的指標。

備註

架構會呼叫這個方法,以還原窗格的最新停駐狀態資訊。 窗格會將最近的停駐狀態資訊儲存在 CPane::m_recentDockInfo中。 如需詳細資訊,請參閱 CRecentDockSiteInfo 類別

您也可以在從外部來源載入窗格資訊時,呼叫此方法來設定停駐狀態。

CPane::SetExclusiveRowMode

啟用或停用獨占數據列模式。

virtual void SetExclusiveRowMode(BOOL bExclusive = TRUE);

參數

bExclusive
[in]TRUE 表示啟用獨佔數據列模式;否則為 FALSE。

備註

呼叫此方法以啟用或停用獨占數據列模式。 當窗格處於獨佔數據列模式時,它無法與任何其他工具列共用相同的數據列。

根據預設,所有工具列都會停用獨佔數據列模式,而且功能表欄已啟用獨佔數據列模式。

CPane::SetMinSize

設定窗格的最小允許大小。

void SetMinSize(const CSize& size);

參數

size
[in] CSize 物件,包含窗格的最小允許大小。

備註

CPane::SetVirtualRect

設定窗格的虛擬矩形

void SetVirtualRect(
    const CRect& rect,
    BOOL bMapToParent = TRUE);

參數

rect
[in] CRect 物件,指定要設定的虛擬矩形。

bMapToParent
[in]如果 rect 包含相對於父視窗的點,請指定 TRUE。

備註

虛擬矩形會在移動窗格時儲存窗格的原始位置。 架構可以使用虛擬矩形來還原原始位置。

除非您以程式設計方式移動窗格,否則請勿呼叫與虛擬矩形相關的方法。

CPane::SetMiniFrameRTC

設定預設迷你框架視窗的運行時間類別資訊。

void SetMiniFrameRTC(CRuntimeClass* pClass);

參數

pClass
[in, out]指定迷你框架視窗的運行時間類別資訊。

備註

當窗格浮動時,它會放在 CPaneFrameWnd (迷你框架) 視窗上。 您可以提供在呼叫 CPane::CreateDefaultMiniframe將使用的自定義CPaneFrameWnd衍生類別。

CPane::StretchPaneDeferWndPos

根據停駐樣式垂直或水平縮放窗格。

virtual int StretchPaneDeferWndPos(
    int nStretchSize,
    HDWP& hdwp);

參數

nStretchSize
[in]要延展窗格的量,以像素為單位。 使用負值來壓縮窗格。

hdwp
[in] 未使用。

傳回值

以像素為單位的實際量,即窗格已縮放。

備註

如有必要,此方法會 修改 nStretchSize ,以確保窗格不會超過大小限制。 呼叫 CPane::GetAvailableStretchSizeCPane::GetAvailableExpandSize 來取得這些限制。

CPane::ToggleAutoHide

切換自動隱藏模式。

virtual void ToggleAutoHide();

備註

呼叫此方法以切換自動隱藏模式。 窗格必須停駐到主框架視窗,才能切換至自動隱藏模式。

CPane::UndockPane

從停駐月臺、預設滑桿或目前停駐的迷你框架窗口移除窗格。

virtual void UndockPane(BOOL bDelay = FALSE);

參數

bDelay
[in]如果為 FALSE,架構會呼叫 CBasePane::AdjustDockingLayout 來調整停駐配置。

備註

使用這個方法以程序設計方式取消卸除窗格。

CPane::UpdateVirtualRect

更新虛擬矩形。

void UpdateVirtualRect();
void UpdateVirtualRect(CPoint ptOffset);
void UpdateVirtualRect(CSize sizeNew);

參數

ptOffset
[in] CPoint 物件,指定要移動窗格的位移。

sizeNew
[in] CSize 物件,指定窗格的新大小。

備註

第一個多載會使用窗格的目前位置和大小來設定虛擬矩形。

第二個多載會依 ptOffset指定的數量來移動虛擬矩形。

第三個多載會使用窗格的目前位置和sizeNew指定的大小,來設定虛擬矩形。

另請參閱

階層架構圖表
類別
CBasePane 類別