CAutoHideDockSite 类

CAutoHideDockSite 扩展 CDockSite 类以实现自动隐藏停靠窗格。

语法

class CAutoHideDockSite : public CDockSite

成员

公共构造函数

名称 说明
Name 描述
CAutoHideDockSite::CAutoHideDockSite 构造 CAutoHideDockSite 对象。
CAutoHideDockSite::~CAutoHideDockSite 析构函数。

公共方法

名称 说明
Name 描述
CAutoHideDockSite::AllowShowOnPaneMenu 指示 CAutoHideDockSite 是否显示在窗格菜单上。
CAutoHideDockSite::CanAcceptPane 确定基窗格对象是否派生自 CMFCAutoHideBar 类
CAutoHideDockSite::DockPane 将窗格停靠到此 CAuotHideDockSite 对象。
CAutoHideDockSite::GetAlignRect 检索停靠站点的大小(以屏幕坐标表示)。
CAutoHideDockSite::RepositionPanes 使用全局边距和按钮间距重新绘制 CAutoHideDockSite 上的窗格。
CAutoHideDockSite::SetOffsetLeft 设置停靠栏左侧的边距。
CAutoHideDockSite::SetOffsetRight 设置停靠栏右侧的边距。
CAutoHideDockSite::UnSetAutoHideMode CAutoHideDockSite 上的对象调用 CMFCAutoHideBar::UnSetAutoHideMode

数据成员

名称 说明
Name 描述
CAutoHideDockSite::m_nExtraSpace 定义工具栏和停靠栏边缘之间的空间大小。 根据停靠空间的对齐方式,从左边缘或上边缘测量此空间。

注解

调用 CFrameWndEx::EnableAutoHidePanes 时,框架会自动创建一个 CAutoHideDockSite 对象。 大多数情况下,不需直接实例化或使用此类。

停靠栏是停靠窗格左侧与 CMFCAutoHideButton 类左侧之间的间距。

继承层次结构

CObject

CCmdTarget

CWnd

CBasePane

CDockSite

示例

下面的示例演示如何从 CMFCAutoHideBar 对象中检索 CAutoHideDockSite 对象,以及如何设置停靠栏的左右边距。

CAutoHideDockSite *pParentDockBar = DYNAMIC_DOWNCAST(CAutoHideDockSite, pParentBar->GetParentDockSite());
pParentDockBar->SetOffsetLeft(10);
pParentDockBar->SetOffsetRight(10);

要求

头文件:afxautohidedocksite.h

CAutoHideDockSite::CanAcceptPane

确定基窗格是 CMFCAutoHideBar 对象还是派生自 CMFCAutoHideBar

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

参数

pBar
[in] 框架测试的基窗格。

返回值

如果 pBar 派生自 CMFCAutoHideBar,则为 TRUE;否则为 FALSE。

备注

如果基窗格对象派生自 CMFCAutoHideBar,则它可以包含一个 CAutoHideDockSite

CAutoHideDockSite::DockPane

将窗格停靠到此 CAutoHideDockSite 对象。

virtual void DockPane(
    CPane* pWnd,
    AFX_DOCK_METHOD dockMethod,
    LPRECT lpRect = NULL);

参数

pWnd
[in] 框架停靠的窗格。

dockMethod
[in] 窗格的停靠选项。

lpRect
[in] 一个矩形,指定停靠的窗格的边界。

备注

默认实现不使用提供给将来使用的参数 dockMethod

如果 lpRect 为 NULL,框架会将窗格置于停靠站点上的默认位置。 如果停靠站点是水平的,则默认位置位于停靠站点最左侧。 否则,默认位置位于停靠站点顶部。

CAutoHideDockSite::GetAlignRect

检索停靠站点的大小(以屏幕坐标表示)。

void GetAlignRect(CRect& rect) const;

参数

rect
[in] 对矩形的引用。 该方法将停靠站点的大小存储在此矩形中。

注解

针对偏移边距调整矩形,使边距不包含在其中。

CAutoHideDockSite::m_nExtraSpace

CAutoHideDockSite 类对象和 CMFCAutoHideBar 类对象的边缘之间的空间的大小。

static int m_nExtraSpace;

注解

CMFCAutoHideBar 停靠在 CAutoHideDockSite 的位置时,它不应占用整个停靠站点。 此全局变量控制 CMFCAutoHideBar 的左边框或上边框与相应的 CAutoHideDockSite 边缘之间的额外空间。 使用上边缘还是左边缘取决于当前对齐方式。

CAutoHideDockSite::SetOffsetLeft

设置停靠栏左侧的边距。

void SetOffsetLeft(int nOffset);

参数

nOffset
[in] 新的偏移量。

注解

CMFCAutoHideBar 对象静态定位在 CAutoHideDockSite 对象上。 这意味着用户无法手动更改 CMFCAutoHideBar 对象的位置。 SetOffsetLeft 方法控制最靠左的 CMFCAutoHideBar 的左侧和 CAutoHideDockSite 的左侧之间的间距。

CAutoHideDockSite::SetOffsetRight

设置停靠栏右侧的边距。

void SetOffsetRight(int nOffset);

参数

nOffset
[in] 新的偏移量。

注解

CMFCAutoHideBar 对象静态定位在 CAutoHideDockSite 对象上。 这意味着用户无法手动更改 CMFCAutoHideBar 对象的位置。 SetOffsetRight 方法控制最靠右的 CMFCAutoHideBar 的右侧和 CAutoHideDockSite 的右侧之间的间距。

CAutoHideDockSite::RepositionPanes

重新绘制 CAutoHideDockSite 上的窗格。

virtual void RepositionPanes(CRect& rectNewClientArea);

参数

rectNewClientArea
[in] 保留值。

备注

默认实现不使用 rectNewClientArea。 它使用全局工具栏边距和按钮间距重新绘制窗格。

CAutoHideDockSite::UnSetAutoHideMode

为停靠站点上的对象调用 CMFCAutoHideBar::UnSetAutoHideMode

void UnSetAutoHideMode(CMFCAutoHideBar* pAutoHideToolbar);

参数

pAutoHideToolbar
[in] 指向 CAutoHideDockSite 上的 CMFCAutoHideBar 对象窗格的指针。

备注

此方法搜索包含 pAutoHideToolbar 的行。 它为该行上的所有 CMFCAutoHideBar 对象调用 CMFCAutoHideBar.UnSetAutoHideMode。 如果 pAutoHideToolbar 未找到或为 NULL,此方法会为 CAutoHideDockSite 上的所有 CMFCAutoHideBar 对象调用 CMFCAutoHideBar.UnSetAutoHideMode

另请参阅

层次结构图

CDockSite 类