CPane 類別
類別CPane
是 CControlBar 類別的增強功能。 如果您要升級現有的 MFC 專案,請將 的所有專案 CControlBar
取代為 CPane
。
語法
class CPane : public CBasePane
成員
公用建構函式
名稱 | 描述 |
---|---|
CPane::~CPane |
解構函式。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
CPane::OnAfterDock | 當窗格停駐時,由架構呼叫。 |
CPane::OnAfterFloat | 當窗格已浮動時,由架構呼叫。 |
CPane::OnBeforeDock | 當窗格即將停駐時,由架構呼叫。 |
CPane::OnBeforeFloat | 當窗格即將浮出時,由架構呼叫。 |
資料成員
名稱 | 描述 |
---|---|
CPane::m_bHandleMinSize | 為窗格啟用最小大小的一致處理。 |
CPane::m_recentDockInfo | 包含最近的停駐資訊。 |
備註
一般而言, CPane
物件不會直接具現化。 如果您需要具有停駐功能的窗格,請從 CDockablePane 衍生物件。 如果您需要工具列功能,請從 CMFCToolBar 衍生物件。
當您從CPane
衍生類別時,它可以停駐在 CDockSite 中,而且可以在 CPaneFrameWnd 中浮動。
繼承階層架構
需求
標頭: 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::GetAvailableStretchSize 和 CPane::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所指定的大小,來設定虛擬矩形。