共用方式為


CPaneDivider 類別

如需詳細資訊,請參閱 Visual Studio 安裝的 VC\atlmfc\src\mfc 資料夾中的原始程式碼

類別 CPaneDivider 會分割兩個窗格、分割兩組窗格,或分隔一組窗格與主框架視窗的工作區。

語法

class CPaneDivider : public CBasePane

成員

公用建構函式

名稱 描述
CPaneDivider::CPaneDivider

公用方法

名稱 描述
CPaneDivider::AddPaneContainer
CPaneDivider::AddPane
CPaneDivider::AddRecentPane
CPaneDivider::CalcExpectedDockedRect
CPaneDivider::CalcFixedLayout (覆寫 CBasePane::CalcFixedLayout .)
CPaneDivider::CheckVisibility
CPaneDivider::CreateEx (覆寫 CBasePane::CreateEx .)
CPaneDivider::D oesAllowDynInsertBefore (覆寫 CBasePane::D oesAllowDynInsertBefore .)
CPaneDivider::D oesContainFloatingPane
CPaneDivider::FindPaneContainer
CPaneDivider::FindTabbedPane
CPaneDivider::GetDefaultWidth
CPaneDivider::GetFirstPane
CPaneDivider::GetPaneDividers 傳回位於 CPaneContainer 類別 中的 窗格分隔符號清單。 這個方法應該只針對預設窗格分隔符號呼叫。
CPaneDivider::GetPaneDividerStyle
CPaneDivider::GetPanes 傳回位於 CPaneContainer 類別 中的 窗格清單。 這個方法應該只針對預設窗格分隔符號呼叫。
CPaneDivider::GetRootContainerRect
CPaneDivider::GetWidth
CPaneDivider::Init
CPaneDivider::InsertPane
CPaneDivider::IsAutoHideMode (覆寫 CBasePane::IsAutoHideMode .)
CPaneDivider::IsDefault
CPaneDivider::IsHorizontal (覆寫 CBasePane::IsHorizontal .)
CPaneDivider::Move
CPaneDivider::NotifyAboutRelease
CPaneDivider::OnShowPane
CPaneDivider::ReleaseEmptyPaneContainers
CPaneDivider::RemovePane
CPaneDivider::ReplacePane
CPaneDivider::RepositionPanes
CPaneDivider::Serialize (覆寫 CBasePane::Serialize。)
CPaneDivider::SetAutoHideMode
CPaneDivider::SetPaneContainerManager
CPaneDivider::ShowWindow
CPaneDivider::StoreRecentDockSiteInfo
CPaneDivider::StoreRecentTabRelatedInfo
名稱 描述
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] 矩形
[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 類別