CDockSite 类
有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
提供用于排列从 CPane Class 派生至多组行的窗格的功能。
语法
class CDockSite: public CBasePane
成员
公共方法
注解
当你调用 CFrameWndEx::EnableDocking 时,框架将自动创建 CDockSite
对象。 停靠站点窗口位于主框架窗口上的工作区边缘。
一般无需调用停靠站点提供的服务,因为 CFrameWndEx 类会处理这些服务。
示例
下面的示例演示如何创建 CDockSite
类的对象。
AFX_DOCKSITE_INFO info;
CDockSite *pDockBar = (CDockSite*)info.pDockBarRTC->CreateObject();
继承层次结构
CObject
└ CCmdTarget
└ CWnd
└ CBasePane
└ CDockSite
要求
标头:afxDockSite.h
CDockSite::AddRow
CDockingPanesRow* AddRow(
POSITION pos,
int nHeight);
参数
[in] pos
[in] nHeight
返回值
注解
CDockSite::AdjustDockingLayout
virtual void AdjustDockingLayout();
备注
CDockSite::AdjustLayout
virtual void AdjustLayout();
备注
CDockSite::AlignDockSite
void AlignDockSite(
const CRect& rectToAlignBy,
CRect& rectResult,
BOOL bMoveImmediately);
参数
[in] rectToAlignBy
[in] rectResult
[in] bMoveImmediately
注解
CDockSite::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
参数
[in] bStretch
[in] bHorz
返回值
注解
CDockSite::CanAcceptPane
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
参数
[in] pBar
返回值
注解
CDockSite::CreateEx
virtual BOOL CreateEx(
DWORD dwStyleEx,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
DWORD dwControlBarStyle,
CCreateContext* pContext = NULL);
参数
[in] dwStyleEx
[in] dwStyle
[in] rect
[in] pParentWnd
[in] dwControlBarStyle
[in] pContext
返回值
注解
CDockSite::CreateRow
virtual CDockingPanesRow* CreateRow(
CDockSite* pParentDockBar,
int nOffset,
int nRowHeight);
参数
[in] pParentDockBar
[in] nOffset
[in] nRowHeight
返回值
注解
CDockSite::DockPane
virtual void DockPane(
CPane* pWnd,
AFX_DOCK_METHOD dockMethod,
LPCRECT lpRect = NULL);
参数
[in] pWnd
[in] dockMethod
[in] lpRect
备注
CDockSite::DockPaneLeftOf
将窗格停靠到另一个窗格的左侧。
virtual BOOL DockPaneLeftOf(
CPane* pBarToDock,
CPane* pTargetBar);
参数
pBarToDock
[in, out] 指向要停靠到 pTargetBar 左侧的窗格的指针。
pTargetBar
[in, out] 指向目标窗格的指针。
返回值
如果窗格已成功停靠,则为 TRUE;否则为 FALSE。
注解
CDockSite::DoesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
返回值
注解
CDockSite::FindPaneByID
返回具有给定 ID 的窗格。
CPane* FindPaneByID(UINT nID);
参数
nID
[in] 要查找的窗格的命令 ID。
返回值
指向具有指定命令 ID 的窗格的指针,如果未找到窗格,则为 NULL。
注解
CDockSite::FindRowIndex
int FindRowIndex(CDockingPanesRow* pRow);
参数
[in] pRow
返回值
注解
CDockSite::FixupVirtualRects
virtual void FixupVirtualRects();
注解
CDockSite::GetDockSiteID
virtual UINT GetDockSiteID() const;
返回值
注解
CDockSite::GetDockSiteRowsList
const CObList& GetDockSiteRowsList() const;
返回值
注解
CDockSite::GetPaneList
返回停靠在停靠站点的窗格列表。
const CObList& GetPaneList() const;
返回值
对停靠栏中当前停靠的窗格列表的只读引用。
CDockSite::IsAccessibilityCompatible
virtual BOOL IsAccessibilityCompatible();
返回值
注解
CDockSite::IsDragMode
virtual BOOL IsDragMode() const;
返回值
注解
CDockSite::IsLastRow
bool IsLastRow(CDockingPanesRow* pRow) const;
参数
[in] pRow
返回值
注解
CDockSite::IsRectWithinDockSite
BOOL IsRectWithinDockSite(
CRect rect,
CPoint& ptDelta);
参数
[in] rect
[in] ptDelta
返回值
注解
CDockSite::IsResizable
virtual BOOL IsResizable() const;
返回值
注解
CDockSite::MovePane
virtual BOOL MovePane(
CPane* pWnd,
UINT nFlags,
CPoint ptOffset);
参数
[in] pWnd
[in] nFlags
[in] ptOffset
返回值
注解
CDockSite::OnInsertRow
virtual void OnInsertRow(POSITION pos);
参数
[in] pos
备注
CDockSite::OnRemoveRow
virtual void OnRemoveRow(
POSITION pos,
BOOL bByShow = FALSE);
参数
[in] pos
[in] bByShow
备注
CDockSite::OnResizeRow
virtual int OnResizeRow(
CDockingPanesRow* pRowToResize,
int nOffset);
参数
[in] pRowToResize
[in] nOffset
返回值
注解
CDockSite::OnSizeParent
virtual void OnSizeParent(
CRect& rectAvailable,
UINT nSide,
BOOL bExpand,
int nOffset);
参数
[in] rectAvailable
[in] nSide
[in] bExpand
[in] nOffset
注解
CDockSite::OnSetWindowPos
virtual BOOL OnSetWindowPos(
const CWnd* pWndInsertAfter,
const CRect& rectWnd,
UINT nFlags);
参数
[in] pWndInsertAfter
[in] rectWnd
[in] nFlags
返回值
注解
CDockSite::OnShowRow
virtual void OnShowRow(
POSITION pos,
BOOL bShow);
参数
[in] pos
[in] bShow
注解
CDockSite::PaneFromPoint
返回在停靠站点中给定参数指定的点处停靠的窗格。
virtual CPane* PaneFromPoint(CPoint pt);
参数
pt
[in] 要检索的窗格的点,以屏幕坐标表示。
返回值
指向位于指定点的窗格的指针,或者,如果指定点处没有窗格,则为 NULL。
备注
CDockSite::RectSideFromPoint
static int __stdcall RectSideFromPoint(
const CRect& rect,
const CPoint& point);
参数
[in] rect
[in] point
返回值
注解
CDockSite::RemovePane
virtual void RemovePane(
CPane* pWnd,
AFX_DOCK_METHOD dockMethod);
参数
[in] pWnd
[in] dockMethod
注解
CDockSite::RemoveRow
void RemoveRow(CDockingPanesRow* pRow);
参数
[in] pRow
备注
CDockSite::ReplacePane
BOOL ReplacePane(
CPane* pOldBar,
CPane* pNewBar);
参数
[in] pOldBar
[in] pNewBar
返回值
注解
CDockSite::RepositionPanes
virtual void RepositionPanes(CRect& rectNewClientArea);
参数
[in] rectNewClientArea
注解
CDockSite::ResizeDockSite
void ResizeDockSite(
int nNewWidth,
int nNewHeight);
参数
[in] nNewWidth
[in] nNewHeight
备注
CDockSite::ResizeRow
int ResizeRow(
CDockingPanesRow* pRow,
int nNewSize,
BOOL bAdjustLayout = TRUE);
参数
[in] pRow
[in] nNewSize
[in] bAdjustLayout
返回值
注解
CDockSite::ShowPane
显示窗格。
virtual BOOL ShowPane(
CBasePane* pBar,
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
参数
pBar
[in, out] 指向要显示或隐藏的窗格的指针。
bShow
[in] 如果指定要显示窗格,则为 TRUE;如果指定要隐藏窗格,则为 FALSE。
bDelay
[in] 如果指定窗格的布局应延迟到窗格显示之后,则为 TRUE;否则为 FALSE。
bActivate
[in] 未使用此参数。
返回值
如果成功显示或隐藏窗格,则为 TRUE。 如果指定的窗格不属于此停靠站点,则为 FALSE。
备注
调用此方法可显示或隐藏停靠的窗格。 通常,无需直接调用 CDockSite::ShowPane
,因为它由父框架窗口或基窗格调用。
CDockSite::ShowRow
void ShowRow(
CDockingPanesRow* pRow,
BOOL bShow,
BOOL bAdjustLayout);
参数
[in] pRow
[in] bShow
[in] bAdjustLayout
备注
CDockSite::SwapRows
void SwapRows(
CDockingPanesRow* pFirstRow,
CDockingPanesRow* pSecondRow);
参数
[in] pFirstRow
[in] pSecondRow