CPaneDivider 类

有关详细信息,请参阅所安装的 Visual Studio 的 C\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::DoesAllowDynInsertBefore (替代 CBasePane::DoesAllowDynInsertBefore。)
CPaneDivider::DoesContainFloatingPane
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 Tabs 演示示例的一部分。

// 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::DoesAllowDynInsertBefore

virtual BOOL DoesAllowDynInsertBefore() const;

返回值

备注

CPaneDivider::DoesContainFloatingPane

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 类