CPaneDivider 类
有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
CPaneDivider
类分开两个窗格、分开两组窗格或从主框架窗口的工作区分隔一组窗格。
语法
class CPaneDivider : public CBasePane
成员
公共构造函数
名称 | 描述 |
---|---|
CPaneDivider::CPaneDivider |
公共方法
名称 | 描述 |
---|---|
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 类