CDockSite 类

有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

提供用于排列从 CPane Class 派生至多组行的窗格的功能。

语法

class CDockSite: public CBasePane

成员

公共方法

名称 描述
CDockSite::AddRow
CDockSite::AdjustDockingLayout (重写 CBasePane::AdjustDockingLayout。)
CDockSite::AdjustLayout (重写 CBasePane::AdjustLayout
CDockSite::AlignDockSite
CDockSite::CalcFixedLayout (替代 CBasePane::CalcFixedLayout。)
CDockSite::CanAcceptPane (重写 CBasePane::CanAcceptPane。)
CDockSite::CreateEx (重写 CBasePane::CreateEx。)
CDockSite::CreateRow
CDockSite::DockPane (重写 CBasePane::DockPane。)
CDockSite::DoesAllowDynInsertBefore (替代 CBasePane::DoesAllowDynInsertBefore。)
CDockSite::FindRowIndex
CDockSite::FixupVirtualRects
CDockSite::GetDockSiteID
CDockSite::GetDockSiteRowsList
CDockSite::IsAccessibilityCompatible (替代 CBasePane::IsAccessibilityCompatible。)
CDockSite::IsDragMode
CDockSite::IsLastRow
CDockSite::IsRectWithinDockSite
CDockSite::IsResizable (重写 CBasePane::IsResizable。)
CDockSite::MovePane
CDockSite::OnInsertRow
CDockSite::OnRemoveRow
CDockSite::OnResizeRow
CDockSite::OnSetWindowPos
CDockSite::OnShowRow
CDockSite::OnSizeParent
CDockSite::PaneFromPoint 返回在停靠站点中给定参数指定的点处停靠的窗格。
CDockSite::DockPaneLeftOf 将窗格停靠到另一个窗格的左侧。
CDockSite::FindPaneByID 返回由给定 ID 标识的窗格。
CDockSite::GetPaneList 返回停靠在停靠站点的窗格列表。
CDockSite::RectSideFromPoint
CDockSite::RemovePane
CDockSite::RemoveRow
CDockSite::ReplacePane
CDockSite::RepositionPanes
CDockSite::ResizeDockSite
CDockSite::ResizeRow
CDockSite::ShowPane 显示窗格。
CDockSite::ShowRow
CDockSite::SwapRows

注解

当你调用 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

备注

另请参阅

层次结构图

CBasePane 类