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 类左侧之间的间距。
继承层次结构
示例
下面的示例演示如何从 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。