CPaneDivider 類別
如需更多詳細資料,請參閱 Visual Studio 安裝位置下之 VC\atlmfc\src\mfc 資料夾中的原始程式碼。
類別 CPaneDivider
會分割兩個窗格、分割兩組窗格,或分隔一組窗格與主框架視窗的工作區。
語法
class CPaneDivider : public CBasePane
成員
公用建構函式
名稱 | 描述 |
---|---|
CPaneDivider::CPaneDivider |
公用方法
名稱 | 描述 |
---|---|
CPaneDivider::m_nDefaultWidth | 以像素為單位指定應用程式中所有窗格分隔符的預設寬度。 |
CPaneDivider::m_pSliderRTC | 保存衍生物件之 CPaneDivider 運行時間類別資訊的指標。 |
備註
架構會在 CPaneDivider
停駐窗格時自動建立物件。
窗格分隔器有兩種類型:
當一組窗格停駐在主框架視窗的一側時,就會建立預設窗格分隔符。 默認窗格分隔器會保留 CPaneContainerManager 類別的指標,並將窗格群組上的大部分作業重新導向至容器管理員(例如調整窗格大小,或停駐另一個窗格或容器)。 每個停駐窗格都會維護其預設窗格分隔符的指標。
一般窗格分隔器只會在容器中分割兩個窗格。 如需詳細資訊,請參閱 CPaneContainer 類別。
範例
下列範例示範如何從 CWorkspaceBar
物件取得 CPaneDivider
物件。 此代碼段是 MDI 索引標籤示範範例的一部分。
// CWorkspaceBar m_wndWorkSpace
CPaneDivider *pSlider = m_wndWorkSpace.GetDefaultPaneDivider();
繼承階層架構
CObject
。 CCmdTarget
。 CWnd
。 CBasePane
· CPaneDivider
需求
標頭: afxPaneDivider.h
CPaneDivider::SetAutoHideMode
void SetAutoHideMode(BOOL bMode);
參數
[in] bMode
備註
CPaneDivider::SetPaneContainerManager
void SetPaneContainerManager(CPaneContainerManager* p);
參數
[in] p
備註
CPaneDivider::AddPane
virtual void AddPane(CDockablePane* pBar);
參數
[in] pBar
備註
CPaneDivider::AddPaneContainer
virtual BOOL AddPaneContainer(
CPaneContainerManager& barContainerManager,
BOOL bOuterEdge);
virtual BOOL AddPaneContainer(
CDockablePane* pTargetBar,
CPaneContainerManager& barContainerManager,
DWORD dwAlignment);
參數
[in] barContainerManager
[in] bOuterEdge
[in] pTargetBar
[in] dwAlignment
傳回值
備註
CPaneDivider::AddRecentPane
virtual CDockablePane* AddRecentPane(CDockablePane* pBar);
參數
[in] pBar
傳回值
備註
CPaneDivider::CalcExpectedDockedRect
virtual void CalcExpectedDockedRect(
CWnd* pWndToDock,
CPoint ptMouse,
CRect& rectResult,
BOOL& bDrawTab,
CDockablePane** ppTargetBar);
參數
[in] pWndToDock
[in] ptMouse
[in] rectResult
[in] bDrawTab
[in] ppTargetBar
備註
CPaneDivider::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
參數
[in] bStretch
[in] bHorz
傳回值
備註
CPaneDivider::CheckVisibility
virtual BOOL CheckVisibility();
傳回值
備註
CPaneDivider::CPaneDivider
CPaneDivider();
CPaneDivider(
BOOL bDefaultSlider,
CWnd* pParent = NULL);
參數
[in] bDefaultSlider
[in] pParent
傳回值
備註
CPaneDivider::CreateEx
virtual BOOL CreateEx(
DWORD dwStyleEx,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext);
參數
[in] dwStyleEx
[in] dwStyle
[in] rect
[in] pParentWnd
[in] nID
[in] pContext
傳回值
備註
CPaneDivider::D oesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
傳回值
備註
CPaneDivider::D oesContainFloatingPane
virtual BOOL DoesContainFloatingPane();
傳回值
備註
CPaneDivider::FindPaneContainer
CPaneContainer* FindPaneContainer(
CDockablePane* pBar,
BOOL& bLeftBar);
參數
[in] pBar
[in] bLeftBar
傳回值
備註
CPaneDivider::FindTabbedPane
CDockablePane* FindTabbedPane(UINT nID);
參數
[in] nID
傳回值
備註
CPaneDivider::GetDefaultWidth
static int __stdcall GetDefaultWidth();
傳回值
備註
CPaneDivider::GetFirstPane
const CBasePane* GetFirstPane() const;
傳回值
備註
CPaneDivider::GetPaneDividers
傳回位於 CPaneContainer 類別中的窗格分隔符清單。 這個方法應該只針對預設窗格分隔符呼叫。
void GetPaneDividers(CObList& lstSliders);
參數
lstSliders
[out]包含位於窗格容器中的窗格分隔符清單。
備註
這個方法應該只針對預設窗格分隔符呼叫。 默認窗格分隔器是調整整個窗格容器大小的分隔器。
CPaneDivider::GetPaneDividerStyle
DWORD GetPaneDividerStyle() const;
傳回值
備註
CPaneDivider::GetPanes
傳回位於 CPaneContainer 類別中的窗格清單。 只有呼叫這個方法,才能擷取預設窗格分隔符。
void GetPanes(CObList& lstBars);
參數
lstBars
[out]包含位於窗格容器中的窗格清單。
備註
這個方法應該只針對預設窗格分隔符呼叫。 默認窗格分隔器是調整整個窗格容器大小的分隔器。
CPaneDivider::GetRootContainerRect
CRect GetRootContainerRect();
傳回值
備註
CPaneDivider::GetWidth
int GetWidth() const;
傳回值
備註
CPaneDivider::Init
void Init(
BOOL bDefaultSlider = FALSE,
CWnd* pParent = NULL);
參數
[in] bDefaultSlider
[in] pParent
備註
CPaneDivider::InsertPane
virtual BOOL InsertPane(
CDockablePane* pBarToInsert,
CDockablePane* pTargetBar,
DWORD dwAlignment,
LPCRECT lpRect = NULL);
參數
[in] pBarToInsert
[in] pTargetBar
[in] dwAlignment
[in] lpRect
傳回值
備註
CPaneDivider::IsAutoHideMode
BOOL IsAutoHideMode() const;
傳回值
備註
CPaneDivider::IsDefault
BOOL IsDefault() const;
傳回值
備註
CPaneDivider::IsHorizontal
BOOL IsHorizontal() const;
傳回值
備註
CPaneDivider::m_nDefaultWidth
指定應用程式內所有窗格分隔符的預設寬度,以像素為單位。
AFX_IMPORT_DATA static int m_nDefaultWidth;
CPaneDivider::Move
virtual void Move(
CPoint& ptOffset,
BOOL bAdjustLayout = TRUE);
參數
[in] ptOffset
[in] bAdjustLayout
備註
CPaneDivider::m_pSliderRTC
保存衍生物件之 CPaneDivider
運行時間類別資訊的指標。
AFX_IMPORT_DATA static CRuntimeClass* m_pSliderRTC;
備註
如果您建立自定義窗格分隔符,請設定此成員變數。 這可讓架構在繪製窗格時建立窗格分隔線。
範例
下列範例示範如何設定 m_pSliderRTC
成員變數:
class CMySplitter : public CPaneDivider
{
...
};
CPaneDivider::m_pSliderRTC = RUNTIME_CLASS(CMySpliter);
CPaneDivider::NotifyAboutRelease
virtual void NotifyAboutRelease();
備註
CPaneDivider::OnShowPane
virtual void OnShowPane(
CDockablePane* pBar,
BOOL bShow);
參數
[in] pBar
[in] bShow
備註
CPaneDivider::ReleaseEmptyPaneContainers
void ReleaseEmptyPaneContainers();
備註
CPaneDivider::RemovePane
virtual void RemovePane(CDockablePane* pBar);
參數
[in] pBar
備註
CPaneDivider::ReplacePane
virtual BOOL ReplacePane(
CDockablePane* pBarToReplace,
CDockablePane* pBarToReplaceWith);
參數
[in] pBarToReplace
[in] pBarToReplaceWith
傳回值
備註
CPaneDivider::RepositionPanes
virtual void RepositionPanes(
CRect& rectNew,
HDWP& hdwp);
參數
[in] rectNew
[in] hdwp
備註
CPaneDivider::Serialize
void Serialize(CArchive& ar);
參數
[in] ar
備註
CPaneDivider::ShowWindow
void ShowWindow(int nCmdShow);
參數
[in] nCmdShow
備註
CPaneDivider::StoreRecentDockSiteInfo
void StoreRecentDockSiteInfo(CDockablePane* pBar);
參數
[in] pBar
備註
CPaneDivider::StoreRecentTabRelatedInfo
void StoreRecentTabRelatedInfo(
CDockablePane* pDockingBar,
CDockablePane* pTabbedBar);
參數
[in] pDockingBar
[in] pTabbedBar
備註
另請參閱
階層架構圖表
類別
CPaneContainerManager 類別
CPaneContainer 類別
CDockingManager 類別
CBasePane 類別