CBasePane 類別
MFC 中所有窗格的基類。
語法
class CBasePane : public CWnd
成員
公用建構函式
名稱 | 描述 |
---|---|
CBasePane::CBasePane |
預設建構函式。 |
CBasePane::~CBasePane |
解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CBasePane::accHitTest |
由架構呼叫以擷取畫面中給定點的子項目或子物件。 (覆寫 CWnd::accHitTest.) |
CBasePane::accLocation |
由架構呼叫,以擷取指定物件的目前畫面位置。 (覆寫 CWnd::accLocation.) |
CBasePane::AccNotifyObjectFocusEvent | CBasePane 不會使用這個方法。 |
CBasePane::accSelect |
由架構呼叫以修改選取或移動指定物件的鍵盤焦點。 (覆寫 CWnd::accSelect.) |
CBasePane::AddPane | 將窗格新增至停駐管理員。 |
CBasePane::AdjustDockingLayout | 重新導向對接管理員的呼叫,以調整停駐配置。 |
CBasePane::AdjustLayout | 當窗格應該調整其內部配置時,由架構呼叫。 |
CBasePane::CalcFixedLayout | 計算控制列的水準大小。 |
CBasePane::CanAcceptPane | 判斷是否可以將另一個窗格停駐到窗格。 |
CBasePane::CanAutoHide | 判斷窗格是否支援自動隱藏模式。 |
CBasePane::CanBeAttached | 判斷窗格是否可以停駐到另一個窗格。 |
CBasePane::CanBeClosed | 判斷窗格是否可以關閉。 |
CBasePane::CanBeDocked | 判斷窗格是否可以停駐到另一個窗格。 |
CBasePane::CanBeResized | 判斷窗格是否可以重設大小。 |
CBasePane::CanBeTabbedDocument | 指定窗格是否可以轉換成 MDI 索引標籤式檔。 |
CBasePane::CanFloat | 判斷窗格是否可以浮動。 |
CBasePane::CanFocus | 指定窗格是否可以接收焦點。 |
CBasePane::CopyState | 複製指定窗格的狀態。 |
CBasePane::CreateDefaultMiniframe | 如果窗格可以浮動,請建立迷你框架視窗。 |
CBasePane::CreateEx | 建立窗格控件。 |
CBasePane::D ockPane | 將窗格停駐到另一個窗格或框架視窗。 |
CBasePane::D ockPaneUsingRTTI | 使用運行時間類型資訊來停駐窗格。 |
CBasePane::D ockToFrameWindow | 將可停駐窗格停駐到框架。 |
CBasePane::D oesAllowDynInsertBefore | 判斷是否可以在此窗格與父框架之間動態插入另一個窗格。 |
CBasePane::EnableDocking | 允許將窗格停駐到主框架。 |
CBasePane::EnableGripper | 啟用或停用移入夾。 如果啟用控制夾,用戶可以拖曳它以重新定位窗格。 |
CBasePane::FillWindowRect |
在內部使用。 |
CBasePane::FloatPane | 浮動窗格。 |
CBasePane::get_accChild |
由架構呼叫以擷取指定子系的 IDispatch 介面位址。 (覆寫 CWnd::get_accChild. |
CBasePane::get_accChildCount |
由架構呼叫以擷取屬於這個物件的子係數目。 (覆寫 CWnd::get_accChildCount. |
CBasePane::get_accDefaultAction |
由架構呼叫以擷取描述對象默認動作的字串。 (覆寫 CWnd::get_accDefaultAction. |
CBasePane::get_accDescription |
由架構呼叫以擷取含有指定物件的視覺外觀描述的字串。 (覆寫 CWnd::get_accDescription. |
CBasePane::get_accFocus |
由架構呼叫以擷取具有鍵盤焦點的物件。 (覆寫 CWnd::get_accFocus. |
CBasePane::get_accHelp |
由架構呼叫以擷取 物件的 Help 屬性字串。 (覆寫 CWnd::get_accHelp. |
CBasePane::get_accHelpTopic | 由架構呼叫以擷取與指定對象相關聯之 WinHelp 檔案的完整路徑,以及該檔案中適當主題的識別碼。 (覆寫 CWnd::get_accHelpTopic. |
CBasePane::get_accKeyboardShortcut |
由架構呼叫以擷取物件的指定快捷鍵。 (覆寫 CWnd::get_accKeyboardShortcut.) |
CBasePane::get_accName |
由架構呼叫以擷取指定物件的名稱。 (覆寫 CWnd::get_accName. |
CBasePane::get_accParent |
由架構呼叫,以擷取 IDispatch 物件的父系介面。 (覆寫 CWnd::get_accParent.) |
CBasePane::get_accRole |
由架構呼叫以擷取含有指定物件的角色描述資訊。 (覆寫 CWnd::get_accRole.) |
CBasePane::get_accSelection | 由架構呼叫以擷取此物件的選取子物件。 (覆寫 CWnd::get_accSelection. |
CBasePane::get_accState |
由架構呼叫以擷取指定物件的目前狀態。 (覆寫 CWnd::get_accState.) |
CBasePane::get_accValue |
由架構呼叫以擷取指定物件的值。 (覆寫 CWnd::get_accValue. |
CBasePane::GetCaptionHeight | 傳回標題高度。 |
CBasePane::GetControlBarStyle | 傳回控件列樣式。 |
CBasePane::GetCurrentAlignment | 傳回目前的窗格對齊方式。 |
CBasePane::GetDockingMode | 傳回窗格目前的停駐模式。 |
CBasePane::GetDockSiteFrameWnd | 傳回視窗的指標,該視窗是窗格的停駐月臺。 |
CBasePane::GetEnabledAlignment | 傳回套用至窗格的CBRS_ALIGN_樣式。 |
CBasePane::GetMFCStyle | 傳回 MFC 特有的窗格樣式。 |
CBasePane::GetPaneIcon | 傳回窗格圖標的句柄。 |
CBasePane::GetPaneRect |
在內部使用。 |
CBasePane::GetPaneRow | 傳回停駐窗格之 CDockingPanesRow物件的指標。 |
CBasePane::GetPaneStyle | 傳回窗格樣式。 |
CBasePane::GetParentDockSite | 傳回父擴充座月臺的指標。 |
CBasePane::GetParentMiniFrame | 傳回父迷你框架視窗的指標。 |
CBasePane::GetParentTabbedPane | 傳回父索引卷標窗格的指標。 |
CBasePane::GetParentTabWnd | 傳回索引標籤內父視窗的指標。 |
CBasePane::GetRecentVisibleState | 架構會在從封存還原窗格時呼叫此方法。 |
CBasePane::HideInPrintPreviewMode | 指定窗格是否隱藏在列印預覽中。 |
CBasePane::InsertPane | 向停駐管理員註冊指定的窗格。 |
CBasePane::IsAccessibilityCompatible | 指定窗格是否支援使用中輔助功能。 |
CBasePane::IsAutoHideMode | 判斷窗格是否處於自動隱藏模式。 |
CBasePane::IsDialogControl | 指定窗格是否為對話框控制件。 |
CBasePane::IsDocked | 判斷窗格是否已停駐。 |
CBasePane::IsFloating | 判斷窗格是否浮動。 |
CBasePane::IsHorizontal | 判斷窗格是否水準停駐。 |
CBasePane::IsInFloatingMultiPaneFrameWnd | 指定窗格是否位於多窗格框架視窗中。 |
CBasePane::IsMDITabbed | 判斷窗格是否已新增至 MDI 子視窗做為索引卷標式檔。 |
CBasePane::IsPaneVisible | 指定是否為窗格設定WS_VISIBLE旗標。 |
CBasePane::IsPointNearDockSite | 判斷指定的點是否靠近停駐月臺。 |
CBasePane::IsResizable | 判斷窗格是否可以重設大小。 |
CBasePane::IsRestoredFromRegistry | 判斷窗格是否從登錄還原。 |
CBasePane::IsTabbed | 判斷是否已將窗格插入索引卷標式視窗的索引卷標控件中。 |
CBasePane::IsTooltipTopmost |
在內部使用。 |
CBasePane::IsVisible | 判斷窗格是否可見。 |
CBasePane::LoadState | 從登錄載入窗格狀態。 |
CBasePane::MoveWindow | 移動窗格。 |
CBasePane::OnAfterChangeParent | 當窗格的父代變更時,由架構呼叫。 |
CBasePane::OnBeforeChangeParent | 由架構在窗格變更其父視窗之前呼叫。 |
CBasePane::OnDrawCaption | 架構會在繪製標題時呼叫這個方法。 |
CBasePane::OnMovePaneDivider | 目前未使用這個方法。 |
CBasePane::OnPaneContextMenu | 架構在建置具有窗格清單的功能表時呼叫。 |
CBasePane::OnRemoveFromMiniFrame | 從其父迷你框架視窗移除窗格時,由架構呼叫。 |
CBasePane::OnSetAccData | CBasePane 不會使用這個方法。 |
CBasePane::OnUpdateCmdUI |
在內部使用。 |
CBasePane::P aneFromPoint | 傳回包含指定點的窗格。 |
CBasePane::PreTranslateMessage |
CWinApp 類別用來轉譯分派至 TranslateMessage 和 DispatchMessage Windows 函式之前的視窗訊息。 (覆寫 CWnd::PreTranslateMessage。) |
CBasePane::RecalcLayout | CBasePane 不會使用這個方法。 |
CBasePane::RemovePaneFromDockManager | 取消註冊窗格,並將它從停駐管理員中的清單中移除。 |
CBasePane::SaveState | 將窗格的狀態儲存至登錄。 |
CBasePane::SelectDefaultFont | 選取指定裝置內容的預設字型。 |
CBasePane::Serialize |
從封存中讀取或寫入此物件。 (覆寫 CObject::Serialize。) |
CBasePane::SetControlBarStyle | 設定控件列樣式。 |
CBasePane::SetDockingMode | 設定窗格的停駐模式。 |
CBasePane::SetMDITabbed |
在內部使用。 |
CBasePane::SetPaneAlignment | 設定窗格的對齊方式。 |
CBasePane::SetPaneRect |
在內部使用。 |
CBasePane::SetPaneStyle | 設定窗格的樣式。 |
CBasePane::SetRestoredFromRegistry |
在內部使用。 |
CBasePane::SetWindowPos | 變更窗格的大小、位置和 Z 順序。 |
CBasePane::ShowPane | 顯示或隱藏窗格。 |
CBasePane::StretchPane | 垂直或水平伸展窗格。 |
CBasePane::UndockPane | 從停駐月臺、預設滑桿或目前停駐的迷你框架窗口移除窗格。 |
受保護的方法
名稱 | 描述 |
---|---|
CBasePane::D oPaint | 填滿窗格的背景。 |
備註
如果您想要建立支援 MFC 中可用擴充停駐功能的窗格類別,您必須從 CBasePane
CPane 類別衍生它或從 CPane 類別衍生。
自訂秘訣
下列自定義秘訣與 CBasePane Class
繼承自它的任何類別有關:
當您建立窗格時,可以套用數個新的樣式:
AFX_CBRS_FLOAT讓窗格浮動。
AFX_CBRS_AUTOHIDE啟用自動隱藏模式。
AFX_CBRS_CLOSE可讓窗格關閉(隱藏)。
這些是您可以結合位 OR 作業的旗標。
CBasePane
會實作下列虛擬布爾方法來反映這些旗標: CBasePane::CanBeClosed、 CBasePane::CanAutoHide、 CBasePane::CanFloat。 您可以在衍生類別中覆寫它們,以自定義其行為。
您可以覆寫 CBasePane::CanAcceptPane 來自定義停駐行為。 讓您的窗格從此方法傳回 FALSE,以防止另一個窗格停駐。
如果您想要建立無法浮動的靜態窗格,並防止任何其他窗格停駐之前(類似於 OutlookDemo 範例中的 Outlook 列),請將其建立為非浮動,並覆寫 CBasePane::D oesAllowDynInsertBefore 以傳回 FALSE。 如果建立窗格而沒有AFX_CBRS_FLOAT樣式,則默認實作會傳回 FALSE。
使用 -1 以外的標識碼建立所有窗格。
若要判斷窗格可見性,請使用 CBasePane::IsVisible。 它會正確地處理索引標籤式和自動隱藏模式中的可見性狀態。
如果您想要建立不可浮動的可重設大小窗格,請建立不含AFX_CBRS_FLOAT樣式的窗格,並呼叫 CFrameWnd::D ockControlBar。
若要從停駐配置中排除窗格,或從停駐列移除工具列,請呼叫 CBasePane::UndockPane。 請勿針對處於自動隱藏模式的窗格或位於索引卷標視窗索引卷標的窗格呼叫這個方法。
如果您想要浮動或取消停駐處於自動隱藏模式的窗格,您必須先呼叫 CDockablePane::SetAutoHideMode 做為第一個自變數,然後再呼叫 CBasePane::FloatPane 或 CBasePane::UndockPane。
範例
下例示範如何在 CBasePane
類別中使用各種方法。 此範例示範如何從 類別擷 CFrameWndEx
取窗格,以及如何設定停駐模式、窗格對齊方式和窗格樣式。 程式代碼來自 Word Pad 範例。
// This CMainFrame class extends the CFrameWndEx class.
// GetPane is a method in the CFrameWndEx class which
// Returns a pointer to the pane that has the specified ID.
CBasePane *pBar = GetPane(ID_VIEW_FORMATBAR);
if (pBar != NULL)
{
// Set the docking mode, the pane alignment, and the pane style.
pBar->SetDockingMode(DT_STANDARD);
pBar->SetPaneAlignment(CBRS_ALIGN_LEFT);
pBar->SetPaneStyle(pBar->GetCurrentAlignment() | CBRS_TOOLTIPS);
pBar->ShowPane(TRUE, FALSE, FALSE);
}
繼承階層架構
需求
標頭: afxbasepane.h
CBasePane::AccNotifyObjectFocusEvent
CBasePane
不會使用這個方法。
virtual void AccNotifyObjectFocusEvent(int);
參數
int
[in] 未使用。
CBasePane::AddPane
將窗格新增至停駐管理員。
void AddPane(CBasePane* pBar);
參數
pBar
[in]要加入之窗格的指標。
備註
這是將窗格新增至停駐管理員的便利方法。 藉由使用此方法,您不需要撰寫程式代碼來分析父框架的類型。
如需詳細資訊,請參閱 CDockingManager 類別 和 CMDIFrameWndEx::AddPane。
CBasePane::AdjustDockingLayout
重新導向對接管理員的呼叫,以調整停駐配置。
virtual void AdjustDockingLayout(HDWP hdwp=NULL);
參數
hdwp
[out]包含多個視窗位置之結構的句柄。
備註
這是調整停駐配置的便利方法。 藉由使用此方法,您不需要撰寫程式代碼來分析父框架的類型。
如需詳細資訊,請參閱 CDockingManager::AdjustDockingLayout
CBasePane::AdjustLayout
由架構呼叫以調整窗格的內部配置。
virtual void AdjustLayout();
備註
當窗格必須調整其內部配置時,架構會呼叫此方法。 基底實作不會執行任何動作。
CBasePane::CalcFixedLayout
計算控制列的水準大小。
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
參數
bStretch
[in]指出長條是否應該延展至框架的大小。 當條形圖不是停駐列(不適用於停駐)時,bStretch 參數是非零的,當停駐或浮動時為 0。當列停駐或浮動時,則為 0。
bHorz
[in]表示橫條為水準或垂直方向。 如果橫條為水準方向,則 bHorz 參數為非零,如果垂直方向則為 0。
傳回值
物件的控制列大小,以像素 CSize
為單位。
備註
請參閱 CControlBar::CalcFixedLayout 中的 備註一節
CBasePane::CanAcceptPane
判斷是否可以將另一個窗格停駐到窗格。
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
參數
pBar
[in]要停駐之窗格的指標。
傳回值
如果可以接受另一個窗格,則為TRUE;否則為 FALSE。
備註
架構會在將 pBar 指定的窗格停駐到目前窗格之前,先呼叫這個方法。
使用此方法和 CBasePane::CanBeDocked 方法來控制窗格停駐至應用程式中其他窗格的方式。
默認實作會傳回 FALSE。
CBasePane::CanAutoHide
判斷窗格是否支援自動隱藏模式。
virtual BOOL CanAutoHide() const;
傳回值
如果此窗格支援自動隱藏模式,則為TRUE;否則為 FALSE。
備註
架構會呼叫此函式,以判斷窗格是否支援自動隱藏模式。
在建構期間,您可以將AFX_CBRS_AUTOHIDE旗標傳遞至 CBasePane::CreateEx 來設定此功能。
默認實作會檢查AFX_CBRS_AUTOHIDE旗標。 覆寫衍生類別中的這個方法,以自定義此行為。
CBasePane::CanBeAttached
判斷窗格是否可以停駐到另一個窗格或框架視窗。
virtual BOOL CanBeAttached() const;
傳回值
如果窗格可以停駐到另一個窗格或框架視窗,則為TRUE;否則為 FALSE。
備註
默認實作會傳回 FALSE。 覆寫衍生類別中的這個方法,以啟用或停用停駐的功能,而不呼叫 CBasePane::EnableDocking。
CBasePane::CanBeClosed
判斷窗格是否可以關閉。
virtual BOOL CanBeClosed() const;
傳回值
如果窗格可以關閉,則為TRUE;否則為 FALSE。
備註
架構會呼叫這個方法,以判斷窗格是否可以關閉。 如果方法傳回 TRUE, 則會將 [關閉 ] 按鈕新增至窗格的標題列,或者如果窗格浮動,則新增至窗格小型框架視窗的標題列。
在建構期間,您可以將AFX_CBRS_CLOSE旗標傳遞至 CBasePane::CreateEx 來設定此功能。
默認實作會檢查AFX_CBRS_CLOSE旗標。
CBasePane::CanBeDocked
判斷窗格是否可以停駐到另一個窗格。
virtual BOOL CanBeDocked(CBasePane* pDockBar) const;
參數
pDockBar
[in]另一個窗格的指標。
傳回值
如果此窗格可以停駐到另一個窗格,則為TRUE;否則為 FALSE。
備註
架構會在將 pDockBar 指定的窗格停駐到目前窗格之前,先呼叫這個方法。
使用此方法和 CBasePane::CanAcceptPane 方法來控制窗格停駐至應用程式中其他窗格的方式。
默認實作會傳回 FALSE。
CBasePane::CanBeResized
判斷窗格是否可以重設大小。
virtual BOOL CanBeResized() const;
傳回值
如果窗格可以重設大小,則為TRUE;否則為 FALSE。
備註
這個方法會檢查 AFX_CBRS_RESIZE 旗標,這個旗標預設在 中 CBasePane::OnCreate
指定。 如果未指定此旗標,停駐管理員會在內部將窗格標示為不可移動,而不是將其停駐。
CBasePane::CanBeTabbedDocument
指定窗格是否可以轉換成 MDI 索引標籤式檔。
virtual BOOL CanBeTabbedDocument() const;
傳回值
如果窗格可以轉換成索引卷標式檔,則為TRUE;否則為 FALSE。 CBasePane::CanBeTabbedDocument
一律會傳回 FALSE。
備註
只有特定 CBasePane
衍生型別的物件,例如 CDockablePane 類別,可以轉換成索引卷標式檔。
CBasePane::CanFloat
判斷窗格是否可以浮動。
virtual BOOL CanFloat() const;
傳回值
如果窗格可以浮動,則為TRUE;否則為 FALSE。
備註
架構會呼叫這個方法,以判斷窗格是否可以浮動。
在建構期間,您可以將AFX_CBRS_FLOAT旗標傳遞至 CBasePane::CreateEx 來設定此功能。
注意
架構假設非浮動窗格是靜態的,而且其停駐狀態無法變更。 因此,架構不會儲存非浮動窗格的停駐狀態。
默認實作會檢查AFX_CBRS_FLOAT樣式。
CBasePane::CanFocus
指定窗格是否可以接收焦點。
virtual BOOL CanFocus() const;
傳回值
如果窗格可以接收焦點,則為TRUE;否則為 FALSE。
備註
覆寫衍生類別中的這個方法,以控制焦點。 例如,因為工具列無法接收焦點,所以此方法會在工具列物件上呼叫時傳回 FALSE。
架構會在窗格停駐或浮動時嘗試設定輸入焦點。
CBasePane::CopyState
複製指定窗格的狀態。
virtual void CopyState(CBasePane* pOrgBar);
參數
pOrgBar
[in]另一個窗格的指標。
備註
這個方法會將狀態從 pOrgBar 複製到此窗格。
CBasePane::CreateDefaultMiniframe
如果窗格可以浮動,這個方法會為其建立迷你框架視窗。
virtual CPaneFrameWnd* CreateDefaultMiniframe(CRect rectInitial);
參數
rectInitial
[in]指定迷你框架視窗的初始座標。
傳回值
新的迷你框架窗口指標,如果建立失敗,則為 NULL。
備註
當窗格切換至浮動狀態時,架構會呼叫此方法。 方法會建立迷你框架視窗,並將窗格附加至此視窗。
默認實作會傳回 NULL。
CBasePane::CreateEx
建立窗格控件。
virtual BOOL CreateEx(
DWORD dwStyleEx,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
DWORD dwControlBarStyle=0,
CCreateContext* pContext=NULL);
參數
dwStyleEx
[in]擴充樣式(如需詳細資訊,請參閱 CWnd::CreateEx )。
lpszClassName
[in]視窗類別名稱。
lpszWindowName
[in]視窗名稱。
dwStyle
[in]窗口樣式(請參閱 CWnd::CreateEx)。
rect
[in]初始矩形。
pParentWnd
[in]父視窗的指標。
nID
[in]指定窗格識別碼。 必須是唯一的。
dwControlBarStyle
[in]窗格的樣式旗標。
pContext
[in]的指標 CcreateContext
傳回值
如果已成功建立窗格,則為TRUE;否則為 FALSE。
備註
建立類別 lpszClassName
的視窗。 如果您指定WS_CAPTION,這個方法會清除WS_CAPTION樣式位,並將 設定 CBasePane::m_bHasCaption
為 TRUE,因為連結庫不支援具有標題的窗格。
您可以使用任何子視窗樣式和 MFC 控制件列 (CBRS_) 樣式的組合。
連結庫會為窗格新增數個新樣式。 下表描述新的樣式:
樣式 | 描述 |
---|---|
AFX_CBRS_FLOAT | 窗格可以浮動。 |
AFX_CBRS_AUTOHIDE | 窗格支援自動隱藏模式 |
AFX_CBRS_RESIZE | 窗格可以重設大小。 重要事項: 未實作此樣式。 |
AFX_CBRS_CLOSE | 窗格可以關閉。 |
AFX_CBRS_AUTO_ROLLUP | 窗格可以在浮動時積存。 |
AFX_CBRS_REGULAR_TABS | 當某個窗格停駐至具有此樣式的另一個窗格時,會建立一般索引卷標式視窗。 (如需詳細資訊,請參閱 CTabbedPane 類別。) |
AFX_CBRS_OUTLOOK_TABS | 當某個窗格停駐至具有此樣式的另一個窗格時,會建立 Outlook 樣式索引卷標式視窗。 (如需詳細資訊,請參閱 CMFCOutlookBar 類別。) |
若要使用新的樣式,請在 dwControlBarStyle 中指定它們。
CBasePane::D ockPane
將窗格停駐到另一個窗格或框架視窗。
virtual BOOL DockPane(
CBasePane* pDockBar,
LPCRECT lpRect,
AFX_DOCK_METHOD dockMethod);
參數
pDockBar
[in]另一個窗格的指標。
lpRect
[in]指定目的地矩形。
dockMethod
[in]指定停駐方法。
傳回值
如果控制列已順利停駐,則為TRUE;否則為 FALSE。
備註
呼叫此函式,將窗格停駐到另一個窗格或 pDockBar 所指定的停駐列(CDockSite 類別),如果 pDockBar 為 NULL,則停駐到主框架。
dockMethod 會指定窗格的停駐方式。 如需可能值的清單,請參閱 CPane::D ockPane 。
CBasePane::D ockPaneUsingRTTI
使用運行時間類型資訊來停駐窗格。
void DockPaneUsingRTTI(BOOL bUseDockSite);
參數
bUseDockSite
[in]如果為 TRUE,請停駐到停駐月臺。 如果為 FALSE,請停駐至父框架。
CBasePane::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,窗格會停駐在靠近工作區中心的地方。
傳回值
如果方法成功,則為TRUE;否則為 FALSE。
備註
如果無法建立窗格分隔器( CPaneDivider 類別),這個方法就會失敗。 否則,它一律會傳回 TRUE。
CBasePane::D oesAllowDynInsertBefore
判斷是否可以在此窗格與父框架之間動態插入另一個窗格。
virtual BOOL DoesAllowDynInsertBefore() const;
傳回值
如果使用者可以插入另一個窗格,則為TRUE;否則為 FALSE。
備註
架構會呼叫此方法,以判斷使用者是否可以在此窗格之前動態插入窗格。
例如,假設您的應用程式會建立停駐在框架左側的窗格(例如 Outlook 列)。 若要防止使用者停駐第一個窗格左邊的另一個窗格,請覆寫此方法並傳回 FALSE。
建議您覆寫這個方法,並針對衍生自 CDockablePane 類別的非浮動窗格傳回 FALSE。
默認實作會傳回 TRUE。
CBasePane::D oPaint
填滿窗格的背景。
virtual void DoPaint(CDC* pDC);
參數
pDC
[in]裝置內容的指標。
備註
默認實作會呼叫目前的視覺管理員來填滿背景 ( CMFCVisualManager::OnFillBarBackground)。
CBasePane::EnableDocking
允許將窗格停駐到主框架。
virtual void EnableDocking(DWORD dwAlignment);
參數
dwAlignment
[in]指定要啟用的停駐對齊方式。
備註
呼叫這個方法,以啟用主框架的停駐對齊。 您可以傳遞CBRS_ALIGN_旗標的組合(如需詳細資訊,請參閱 CControlBar::EnableDocking)。
EnableDocking
會設定內部旗標 CBasePane::m_dwEnabledAlignment
,而架構會在停駐窗格時檢查此旗標。
呼叫 CBasePane::GetEnabledAlignment 以判斷窗格的停駐對齊方式。
CBasePane::EnableGripper
啟用或停用移入夾。 如果啟用控制夾,用戶可以拖曳它以重新定位窗格。
virtual void EnableGripper(BOOL bEnable);
參數
bEnable
[in]TRUE 可啟用移握器;FALSE 以停用它。
備註
架構會使用此方法來啟用移入器,而不是使用WS_CAPTION樣式。
CBasePane::FloatPane
浮動窗格。
virtual BOOL FloatPane(
CRect rectFloat,
AFX_DOCK_METHOD dockMethod=DM_UNKNOWN,
bool bShow=true);
參數
rectFloat
[in]指定浮動窗格出現所在的螢幕座標。
dockMethod
[in]指定要用來浮動窗格的 Dock 方法。
bShow
[in]指定浮動窗格是可見的(TRUE)還是隱藏的(FALSE)。
傳回值
如果窗格已成功浮動,則為TRUE;否則為 FALSE。
備註
呼叫此方法,以在 rectFloat 所指定的畫面位置上浮動窗格。
CBasePane::get_accHelpTopic
架構會呼叫此方法,以擷取與指定對象相關聯之 WinHelp 檔案的完整路徑,以及該檔案中適當主題的標識碼。
virtual HRESULT get_accHelpTopic(
BSTR* pszHelpFile,
VARIANT varChild,
long* pidTopic);
參數
pszHelpFile
[in]BSTR 的位址,該字串會接收與指定對象相關聯之 WinHelp 檔案的完整路徑,如果有的話。
varChild
[in]指定要擷取的 Help 主題是否為 物件或物件的其中一個子專案。 這個參數可以是CHILDID_SELF(若要取得對象的說明主題)或子標識碼(若要取得物件的其中一個子專案的說明主題)。
pidTopic
[in]識別 與指定對象相關聯的說明 檔主題。
傳回值
CBasePane
不會實作這個方法。 因此, CBasePane::get_accHelpTopic
一律會傳回S_FALSE。
備註
此函式是 MFC 中作用中輔助功能支援的一部分。 覆寫衍生類別中的這個函式,以提供對象的相關說明資訊。
CBasePane::get_accSelection
架構會呼叫這個方法,以擷取這個對象的選取子系。
virtual HRESULT get_accSelection(VARIANT* pvarChildren);
參數
pvarChildren
[in]接收識別所選子系的資訊。
傳回值
CBasePane
不會實作這個方法。 如果 pvarChildren 為 NULL,這個方法會傳回E_INVALIDARG。 否則,此方法會傳回DISP_E_MEMBERNOTFOUND。
備註
此函式是 MFC 中作用中輔助功能支援的一部分。 如果您有無視窗 ActiveX 控制件以外的非視窗使用者介面元素,請覆寫衍生類別中的此函式。
CBasePane::GetCaptionHeight
傳回標題高度。
virtual int GetCaptionHeight() const;
傳回值
標題高度。
CBasePane::GetControlBarStyle
傳回控件列樣式。
virtual DWORD GetControlBarStyle() const
傳回值
AFX_CBRS_旗標的位 OR 組合。
備註
傳回值是下列可能值的組合。
樣式 | 描述 |
---|---|
AFX_CBRS_FLOAT | 讓控制列浮動。 |
AFX_CBRS_AUTOHIDE | 啟用自動隱藏模式。 |
AFX_CBRS_RESIZE | 啟用控制列的大小調整。 設定此旗標時,控件列可以放在可停駐窗格中。 |
AFX_CBRS_CLOSE | 啟用隱藏控制列。 |
CBasePane::GetCurrentAlignment
傳回目前的窗格對齊方式。
virtual DWORD GetCurrentAlignment() const;
傳回值
控件列的目前對齊方式。 下表顯示可能的值:
值 | 對齊方式 |
---|---|
CBRS_ALIGN_LEFT | 靠左對齊。 |
CBRS_ALIGN_RIGHT | 靠右對齊。 |
CBRS_ALIGN_TOP | 頂端對齊方式。 |
CBRS_ALIGN_BOTTOM | 下對齊方式。 |
CBasePane::GetDockingMode
傳回窗格目前的停駐模式。
virtual AFX_DOCK_TYPE GetDockingMode() const;
傳回值
如果拖曳窗格是由拖曳矩形在畫面上指出,DT_STANDARD。 如果拖曳窗格的內容,DT_IMMEDIATE。
備註
架構會呼叫此方法,以判斷窗格目前的停駐模式。
如果 CBasePane::m_dockMode
未定義 (DT_UNDEFINED),則停駐模式會取自全域停駐模式 (AFX_GLOBAL_DATA::m_dockModeGlobal
)。
藉由設定 m_dockMode 或覆寫 GetDockingMode
,您可以控制每個窗格的停駐模式。
CBasePane::GetDockSiteFrameWnd
傳回停駐窗格之 CDockingPanesRow物件的指標。
virtual CWnd* GetDockSiteFrameWnd() const;
傳回值
窗格停駐點的指標。
備註
呼叫這個方法,以擷取窗格停駐月臺的指標。 如果窗格停駐到主框架,則停駐月臺可以是主框架視窗,如果窗格浮動,則為迷你框架視窗。
CBasePane::GetEnabledAlignment
傳回套用至窗格的CBRS_ALIGN_樣式。
virtual DWORD GetEnabledAlignment() const;
傳回值
CBRS_ALIGN_樣式的組合。 下表顯示可能的樣式:
旗標 | 已啟用對齊 |
---|---|
CBRS_ALIGN_LEFT | 左。 |
CBRS_ALIGN_RIGHT | 沒錯 |
CBRS_ALIGN_TOP | Top。 |
CBRS_ALIGN_BOTTOM | 底。 |
CBRS_ALIGN_ANY | 所有旗標的組合。 |
備註
呼叫這個方法,以判斷窗格的啟用對齊方式。 啟用的對齊表示可以停駐窗格的主框架視窗兩側。
使用 CBasePane::EnableDocking 來啟用停駐對齊。
CBasePane::GetMFCStyle
傳回 MFC 特有的窗格樣式。
virtual DWORD GetMFCStyle() const;
傳回值
連結庫特定 (AFX_CBRS_) 窗格樣式的組合。
CBasePane::GetPaneIcon
傳回窗格圖標的句柄。
virtual HICON GetPaneIcon(BOOL bBigIcon);
參數
bBigIcon
[in]如果為 TRUE,則指定 32 像素 x 32 像素圖示;如果為 FALSE,則指定 16 像素的 16 像素圖示。
傳回值
窗格圖示的句柄。 如果失敗,則傳回NULL。
備註
默認實作會呼叫 CWnd::GetIcon。
CBasePane::GetPaneRow
傳回停駐窗格之 CDockingPanesRow物件的指標。
CDockingPanesRow* GetPaneRow();
傳回值
如果窗格停駐,則為 指標 CDockingPanesRow
,如果窗格為浮動,則為 NULL。
備註
呼叫這個方法,以存取窗格停駐的數據列。 例如,若要排列特定數據列中的窗格,請呼叫 GetPaneRow
CDockingPanesRow::ArrangePanes。
CBasePane::GetPaneStyle
傳回窗格樣式。
virtual DWORD GetPaneStyle() const;
傳回值
建立時由 CBasePane::SetPaneStyle 方法設定的控制列樣式組合(包括CBRS_樣式)。
CBasePane::GetParentDockSite
傳回父擴充座月臺的指標。
virtual CDockSite* GetParentDockSite() const;
傳回值
父月臺月臺。
CBasePane::GetParentMiniFrame
傳回父迷你框架視窗的指標。
virtual CPaneFrameWnd* GetParentMiniFrame(BOOL bNoAssert=FALSE) const;
參數
bNoAssert
[in]如果為 TRUE,這個方法不會檢查是否有無效的指標。 如果您在應用程式結束時呼叫此方法,請將此參數設定為TRUE。
傳回值
如果窗格浮動,則為父迷你框架視窗的有效指標;否則為 NULL。
備註
呼叫此函式以擷取父迷你框架視窗的指標。 此方法會逐一查看所有父系,並檢查衍生自 CPaneFrameWnd 類別的物件。
使用 GetParentMiniFrame
來判斷窗格是否浮動。
CBasePane::GetParentTabbedPane
傳回父索引卷標窗格的指標。
CBaseTabbedPane* GetParentTabbedPane() const;
傳回值
如果存在,則為父索引卷標窗格的指標;否則為 NULL。
CBasePane::GetParentTabWnd
傳回索引標籤內父視窗的指標。
CMFCBaseTabCtrl* GetParentTabWnd(HWND& hWndTab) const;
參數
hWndTab
[out]如果傳回值不是 NULL,此參數會包含父索引標籤視窗的句柄。
傳回值
父索引標籤視窗或 NULL 的有效指標。
備註
使用此函式來擷取父索引標籤視窗的指標。 有時候呼叫 是不夠的 GetParent
,因為窗格可能位於停駐包裝函式 ( CDockablePaneAdapter 類別) 或窗格配接器內 ( CDockablePaneAdapter 類別)。 藉由使用 GetParentTabWnd
,您將能夠在這些情況下擷取有效的指標(假設父系是索引標籤式視窗)。
CBasePane::GetRecentVisibleState
架構會在從封存還原窗格時呼叫此方法。
virtual BOOL GetRecentVisibleState() const;
傳回值
指定最近可見狀態的 BOOL。 如果為 TRUE,則會在串行化時看到窗格,且應該在還原時顯示。 如果為 FALSE,則會在串行化時隱藏窗格,且應該在還原時隱藏。
CBasePane::HideInPrintPreviewMode
指定窗格是否隱藏在列印預覽中。
virtual BOOL HideInPrintPreviewMode() const;
傳回值
如果在列印預覽中未顯示窗格,則為TRUE;否則為 FALSE。
備註
基本窗格不會顯示在列印預覽中。 因此,此方法一律會傳回 TRUE。
CBasePane::InsertPane
向停駐管理員註冊指定的窗格。
BOOL InsertPane(
CBasePane* pControlBar,
CBasePane* pTarget,
BOOL bAfter = TRUE);
參數
pControlBar
[in]要插入之窗格的指標。
pTarget
[in]相鄰窗格的指標。
bAfter
[in]如果為 TRUE,則會在 pTarget 之後插入 pControlBar。 如果為 FALSE,則會在 pTarget 之前插入 pControlBar。
傳回值
如果方法成功,則為TRUE,否則為 FALSE。
CBasePane::IsAccessibilityCompatible
指定窗格是否支援使用中輔助功能。
virtual BOOL IsAccessibilityCompatible();
傳回值
如果窗格支援 [使用中輔助功能],則為 TRUE;否則為 FALSE。
CBasePane::IsAutoHideMode
判斷窗格是否處於自動隱藏模式。
virtual BOOL IsAutoHideMode() const;
傳回值
如果窗格處於自動隱藏模式,則為TRUE;否則為 FALSE。
備註
基底窗格無法自動隱藏。 這個方法一律會傳回 FALSE。
CBasePane::IsDialogControl
指定窗格是否為對話框控制件。
BOOL IsDialogControl() const;
傳回值
如果窗格是對話框控件,則為TRUE;否則為 FALSE。
備註
架構會使用此方法來確保所有窗格的版面配置一致性。
CBasePane::IsDocked
判斷窗格是否已停駐。
virtual BOOL IsDocked() const;
傳回值
TRUE 是表示 如果窗格的父系不是迷你框架,或窗格浮動在另一個窗格的迷你框架中;否則為 FALSE。
CBasePane::IsFloating
判斷窗格是否浮動。
virtual BOOL IsFloating() const;
傳回值
如果窗格為浮動,則為TRUE;否則為 FALSE。
備註
這個方法會傳回 CBasePane::IsDocked 的相反值。
CBasePane::IsHorizontal
判斷窗格是否水準停駐。
virtual BOOL IsHorizontal() const;
傳回值
如果窗格水準停駐,則為TRUE;否則為 FALSE。
備註
默認實作會檢查目前的停駐對齊方式,以取得CBRS_ORIENT_HORZ。
CBasePane::IsInFloatingMultiPaneFrameWnd
指定窗格是否位於多窗格框架視窗中( CMultiPaneFrameWnd 類別)。
virtual BOOL IsInFloatingMultiPaneFrameWnd() const;
傳回值
如果窗格位於多窗格框架視窗中,則為TRUE;否則為 FALSE。
備註
只有可停駐窗格可以在多窗格框架視窗中浮動。 因此, CBasePane::IsInFloatingMultiPaneFrameWnd
一律會傳回 FALSE。
CBasePane::IsMDITabbed
判斷窗格是否已新增至 MDI 子視窗做為索引卷標式檔。
virtual BOOL IsMDITabbed() const;
傳回值
如果窗格已新增至 MDI 子視窗做為索引卷標式檔,則為 TRUE;否則為 FALSE。
CBasePane::IsPaneVisible
指定是否為窗格設定WS_VISIBLE旗標。
BOOL IsPaneVisible() const;
傳回值
如果已設定WS_VISIBLE,則為TRUE;否則為 FALSE。
備註
使用 CBasePane::IsVisible 來判斷窗格可見性。
CBasePane::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。
備註
當點位於停駐管理員中設定的敏感度設定內時,點會靠近停駐月臺。 默認敏感度為15圖元。
CBasePane::IsResizable
判斷窗格是否可以重設大小。
virtual BOOL IsResizable() const;
傳回值
如果使用者可以調整窗格大小,則為TRUE;否則為 FALSE。
備註
CDockablePane 類別的窗格可以重設大小。
狀態列 ( CMFCStatusBar 類別) 和停駐列 ( CDockSite 類別) 無法重設大小。
CBasePane::IsRestoredFromRegistry
判斷窗格是否從登錄還原。
virtual BOOL IsRestoredFromRegistry() const;
傳回值
如果窗格從登錄還原,則為TRUE;否則為 FALSE。
CBasePane::IsTabbed
判斷是否已將窗格插入索引卷標式視窗的索引卷標控件中。
virtual BOOL IsTabbed() const;
傳回值
如果在索引標籤視窗的索引標籤中插入控件列,則為TRUE;否則為 FALSE。
備註
這個方法會擷取直接父系的指標,並判斷父系的運行時間類別是否為 CMFCBaseTabCtrl類別。
CBasePane::IsVisible
判斷窗格是否可見。
virtual BOOL IsVisible() const;
傳回值
如果窗格可見,則為TRUE;否則為 FALSE。
備註
使用這個方法來判斷窗格的可見性。 請勿使用 ::IsWindowVisible
。
如果未索引卷標式窗格(請參閱 CBasePane::IsTabbed),此方法會檢查WS_VISIBLE樣式。 如果窗格已定位,這個方法會檢查父索引卷標式視窗的可見性。 如果顯示父視窗,函式會使用 CMFCBaseTabCtrl::IsTabVisible 檢查窗格索引標籤的可見性。
CBasePane::LoadState
從登錄載入窗格的狀態。
virtual BOOL LoadState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
參數
lpszProfileName
[in]配置檔名稱。
nIndex
[in]配置檔索引。
uiID
[in]窗格標識碼。
傳回值
如果已成功載入窗格狀態,則為TRUE;否則為 FALSE。
備註
架構會呼叫此方法,以從登錄載入窗格狀態。 在衍生類別中覆寫它,以載入 CBasePane::SaveState 所儲存的其他資訊。
CBasePane::MoveWindow
移動窗格。
virtual HDWP MoveWindow(
CRect& rect,
BOOL bRepaint = TRUE,
HDWP hdwp = NULL);
參數
rect
[in]指定窗格新位置和大小的矩形。
bRepaint
[in]如果為TRUE,則會重新繪製窗格。 如果為 FALSE,則不會重新繪製窗格。
hdwp
[in]處理延後視窗位置結構。
傳回值
延遲視窗位置結構的句柄,或 NULL。
備註
如果您以 hdwp 參數的形式傳遞 NULL,這個方法會正常移動視窗。 如果您傳遞句柄,這個方法會執行延後窗口移動。 您可以呼叫 BeginDeferWindowPos ,或儲存先前呼叫這個方法的傳回值,以取得句柄。
CBasePane::OnAfterChangeParent
在窗格的父系變更之後,由架構呼叫。
virtual void OnAfterChangeParent(CWnd* pWndOldParent);
參數
pWndOldParent
[in]上一個父系的指標。
備註
架構會在窗格的父系變更之後呼叫此方法,通常是因為停駐或浮動作業。
預設實作不做任何動作。
CBasePane::OnBeforeChangeParent
由架構在窗格變更其父視窗之前呼叫。
virtual void OnBeforeChangeParent(
CWnd* pWndNewParent,
BOOL bDelay=FALSE);
參數
pWndNewParent
[in]新父視窗的指標。
bDelay
[in]指定是否必須延遲版面配置調整。
備註
架構會在窗格的父變更之前呼叫這個方法,通常是因為停駐、浮動或自動隱藏作業。
預設實作不做任何動作。
CBasePane::OnDrawCaption
架構會在繪製標題時呼叫這個方法。
virtual void OnDrawCaption();
備註
這個方法沒有類別 CBasePane
的功能。
CBasePane::OnMovePaneDivider
目前未使用這個方法。
virtual void OnMovePaneDivider(CPaneDivider* /* unused */);
參數
閑置
[in] 未使用。
CBasePane::OnPaneContextMenu
架構在建置具有窗格清單的功能表時呼叫。
virtual void OnPaneContextMenu(
CWnd* pParentFrame,
CPoint point);
參數
pParentFrame
[in]父框架的指標。
point
[in]指定快捷方式功能表的位置。
備註
OnPaneContextMenu
會呼叫停駐管理員,這會維護屬於目前框架視窗的窗格清單。 這個方法會將窗格的名稱新增至快捷方式功能表並加以顯示。 功能表上的命令會顯示或隱藏個別窗格。
覆寫此方法以自定義此行為。
CBasePane::OnRemoveFromMiniFrame
從其父迷你框架視窗移除窗格時,由架構呼叫。
virtual void OnRemoveFromMiniFrame(CPaneFrameWnd* pMiniFrame);
參數
pMiniFrame
[in]從中移除窗格之迷你框架視窗的指標。
備註
當窗格從其父迷你框架窗口移除時,架構會呼叫這個方法(例如停駐的結果)。
預設實作不做任何動作。
CBasePane::OnSetAccData
CBasePane
不會使用這個方法。
virtual BOOL OnSetAccData(long lVal);
參數
lVal
[in] 未使用。
傳回值
這個方法一律會傳回 TRUE。
備註
CBasePane::P aneFromPoint
傳回包含指定點的窗格。
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
bool bExactBar = false,
CRuntimeClass* pRTCBarType = NULL) const;
參數
point
[in]指定要檢查的點,以螢幕座標為單位。
nSensitivity
[in]依此數量增加搜尋區域。 如果指定的點落在增加的區域,窗格就會滿足搜尋準則。
bExactBar
[in]TRUE 表示忽略 nSensitivity 參數,否則為 FALSE。
pRTCBarType
[in]如果不是 NULL,方法只會搜尋指定類型的窗格。
傳回值
CBasePane
包含指定點的衍生物件,如果找不到任何窗格,則為 NULL。
CBasePane::RecalcLayout
CBasePane
不會使用這個方法。
virtual void RecalcLayout();
CBasePane::RemovePaneFromDockManager
取消註冊窗格,並將它從停駐管理員中的清單中移除。
void RemovePaneFromDockManager(
CBasePane* pBar,
BOOL bDestroy = TRUE,
BOOL bAdjustLayout = FALSE,
BOOL bAutoHide = FALSE,
CBasePane* pBarReplacement = NULL);
參數
pBar
[in]要移除之窗格的指標。
bDestroy
[in]如果為TRUE,則會終結移除的窗格。
bAdjustLayout
[in]如果為 TRUE,請立即調整停駐配置。
bAutoHide
[in]如果為TRUE,停駐配置與自動隱藏列清單相關。 如果為 FALSE,停駐配置與一般窗格清單相關。
pBarReplacement
[in]取代已移除窗格之窗格的指標。
CBasePane::SaveState
將窗格的狀態儲存至登錄。
virtual BOOL SaveState(
LPCTSTR lpszProfileName=NULL,
int nIndex=-1,
UINT uiID=(UINT)-1);
參數
lpszProfileName
[in]配置檔名稱。
nIndex
[in]配置檔索引。
uiID
[in]窗格標識碼。
傳回值
如果成功儲存狀態,則為TRUE;否則為 FALSE。
備註
架構會將窗格的狀態儲存至登錄時,會呼叫這個方法。 在衍生類別中覆寫 SaveState
以儲存其他資訊。
CBasePane::SelectDefaultFont
選取指定裝置內容的預設字型。
CFont* SelectDefaultFont(CDC* pDC);
參數
pDC
[in]裝置內容。
傳回值
預設 CFont Class 物件的指標。
CBasePane::SetControlBarStyle
設定控件列樣式。
virtual void SetControlBarStyle(DWORD dwNewStyle);
參數
dwNewStyle
[in]下列可能值的位 OR 組合。
樣式 | 描述 |
---|---|
AFX_CBRS_FLOAT | 讓控制列浮動。 |
AFX_CBRS_AUTOHIDE | 啟用自動隱藏模式。 |
AFX_CBRS_RESIZE | 啟用控制列的大小調整。 設定此旗標時,控件列可以放在可停駐窗格中。 |
AFX_CBRS_CLOSE | 啟用隱藏控制列。 |
CBasePane::SetDockingMode
設定窗格的停駐模式。
void SetDockingMode(AFX_DOCK_TYPE dockModeNew);
參數
dockModeNew
[in]指定窗格的新停駐模式。
備註
架構支援兩種停駐模式:標準和立即。
在標準停駐模式中,窗格和迷你框架視窗會使用拖曳矩形四處移動。 在直接停駐模式中,控制列和迷你框架視窗會立即隨著其內容移動。
一開始,停駐模式是由 CDockingManager::m_dockModeGlobal全域定義。 您可以使用 方法個別設定每個窗格的 SetDockingMode
停駐模式。
CBasePane::SetPaneAlignment
設定窗格的對齊方式。
virtual void SetPaneAlignment(DWORD dwAlignment);
參數
dwAlignment
[in]指定新的對齊方式。
備註
通常,當窗格從主框架的一側停駐到另一側時,架構會呼叫這個方法。
下表顯示 dwAlignment 的可能值:
值 | 對齊方式 |
---|---|
CBRS_ALIGN_LEFT | 靠左對齊。 |
CBRS_ALIGN_RIGHT | 靠右對齊。 |
CBRS_ALIGN_TOP | 頂端對齊方式。 |
CBRS_ALIGN_BOTTOM | 下對齊方式。 |
CBasePane::SetPaneStyle
設定窗格的樣式。
virtual void SetPaneStyle(DWORD dwNewStyle);
參數
dwNewStyle
[in]指定要設定的新樣式。
備註
這個方法可用來設定 afxres.h 中定義的任何CBRS_樣式。 由於窗格樣式和窗格對齊方式會一起儲存在一起,因此請將新樣式與目前的對齊方式結合在一起,如下所示。
pPane->SetPaneStyle (pPane->GetCurrentAlignment() | CBRS_TOOLTIPS);
CBasePane::SetWindowPos
變更窗格的大小、位置和 Z 順序。
virtual HDWP SetWindowPos(
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags,
HDWP hdwp = NULL);
參數
pWndInsertAfter
[in]以 CWnd
Z 順序識別這個 CWnd
物件之前的物件。 如需詳細資訊,請參閱 CWnd::SetWindowPos。
x
[in]指定視窗左側的位置。
y
[in]指定視窗頂端的位置。
cx
[in]指定視窗的寬度。
cy
[in]指定視窗的高度。
nFlags
[in]指定大小和位置選項。 如需詳細資訊,請參閱 CWnd::SetWindowPos。
hdwp
[in]處理包含一或多個視窗的大小和位置信息的結構。
傳回值
更新延遲視窗位置結構的句柄,或 NULL。
備註
如果 pWndInsertAfter 為 NULL,這個方法會呼叫 CWnd::SetWindowPos。 如果 pWndInsertAfter 不是 NULL,這個方法會呼叫 DeferWindowPos
。
CBasePane::ShowPane
顯示或隱藏窗格。
virtual void ShowPane(
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
參數
bShow
[in]指定是否要顯示 (TRUE) 或隱藏 (FALSE) 窗格。
bDelay
[in]如果為TRUE,則會延遲重新計算停駐配置。
bActivate
[in]如果為TRUE,則窗格會在顯示時處於使用中狀態。
備註
這個方法會顯示或隱藏窗格。 使用此方法, ShowWindow
而不是 ,因為此方法會通知相關停駐管理員窗格可見度中的變更。
使用 CBasePane::IsVisible 來判斷窗格目前的可見性。
CBasePane::StretchPane
垂直或水平伸展窗格。
virtual CSize StretchPane(
int nLength,
BOOL bVert);
參數
nLength
[in]要延伸窗格的長度。
bVert
[in]如果為TRUE,請垂直縮放窗格。 如果為 FALSE,請水平縮放窗格。
傳回值
延展窗格的大小。
CBasePane::UndockPane
從停駐月臺、預設滑桿或目前停駐的迷你框架窗口移除窗格。
virtual void UndockPane(BOOL bDelay=FALSE);
參數
bDelay
如果為TRUE,則不會立即重新計算停駐配置。
備註
呼叫此方法以操作窗格狀態,或從停駐配置中排除窗格。
如果您想要繼續使用此窗格,請先呼叫 CBasePane::D ockPane 或 CBasePane::FloatPane ,再呼叫此方法。