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