CMFCAutoHideBar 类
CMFCAutoHideBar
类是实现自动隐藏功能的特殊工具栏类。
有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
语法
class CMFCAutoHideBar : public CPane
成员
公共构造函数
名称 | 描述 |
---|---|
CMFCAutoHideBar::CMFCAutoHideBar |
公共方法
数据成员
名称 | 描述 |
---|---|
CMFCAutoHideBar::m_nShowAHWndDelay | 用户将鼠标光标置于 CMFCAutoHideButton 类上方的时刻与框架显示关联窗口的时刻之间的时间延迟。 |
注解
当用户将停靠窗格切换为自动隐藏模式时,框架会自动创建 CMFCAutoHideBar
对象。 它还会创建所需的 CAutoHideDockSite 和 CMFCAutoHideButton 对象。 每个 CAutoHideDockSite
对象都与单个 CMFCAutoHideButton
关联。
CMFCAutoHideBar
类在用户鼠标悬停在 CMFCAutoHideButton
上方时实现 CAutoHideDockSite
的显示。 当工具栏收到 WM_MOUSEMOVE 消息时,CMFCAutoHideBar
会启动计时器。 当计时器完成时,它会向工具栏发送 WM_TIMER 事件通知。 工具栏通过检查鼠标指针是否位于它在计时器启动时所处的相同自动隐藏按钮上,来处理此事件。 如果是,则显示附加的 CAutoHideDockSite
。
可以通过设置 m_nShowAHWndDelay
来控制计时器延迟的长度。 默认值为 400 毫秒。
示例
下列示例演示如何构造 CMFCAutoHideBar
对象并使用其 GetDockSiteRow
方法。
CMFCAutoHideBar *pParentBar = new CMFCAutoHideBar();
CDockingPanesRow *pParentRow = pParentBar->GetDockSiteRow();
继承层次结构
要求
标头: afxautohidebar.h
CMFCAutoHideBar::AddAutoHideWindow
向 CDockablePane
窗口添加让它能够自动隐藏的功能。
CMFCAutoHideButton* AddAutoHideWindow(
CDockablePane* pAutoHideWnd,
DWORD dwAlignment);
参数
pAutoHideWnd
[in] 需要隐藏的窗口。
dwAlignment
[in] 用于指定自动隐藏按钮与应用程序窗口对齐方式的值。
返回值
注解
dwAlignment 参数指示自动隐藏按钮位于应用程序中的位置。 该参数可为下列任一值:
CBRS_ALIGN_LEFT
CBRS_ALIGN_RIGHT
CBRS_ALIGN_TOP
CBRS_ALIGN_BOTTOM
CMFCAutoHideBar::AllowShowOnPaneMenu
virtual BOOL AllowShowOnPaneMenu() const;
返回值
注解
CMFCAutoHideBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
参数
[in] bStretch
[in] bHorz
返回值
注解
CMFCAutoHideBar::CMFCAutoHideBar
构造 CMFCAutoHideBar 对象。
CMFCAutoHideBar();
注解
CMFCAutoHideBar::Create
virtual BOOL Create(
LPCTSTR lpszClassName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,
CCreateContext* pContext = NULL);
参数
lpszClassName
dwStyle
rect
pParentWnd
nID
dwControlBarStyle
pContext
返回值
注解
CMFCAutoHideBar::GetFirstAHWindow
返回指向应用程序中的第一个自动隐藏窗口的指针。
CDockablePane* GetFirstAHWindow();
返回值
应用程序中第一个自动隐藏窗口,如果不存在则为 NULL。
注解
CMFCAutoHideBar::GetVisibleCount
获取可见自动隐藏按钮的数目。
int GetVisibleCount();
返回值
返回可见自动隐藏按钮的数目。
注解
CMFCAutoHideBar::m_nShowAHWndDelay
用户将鼠标光标置于 CMFCAutoHideButton 类上方的时刻与框架显示关联窗口的时刻之间的时间延迟。
int CMFCAutoHideBar::m_nShowAHWndDelay = 400;
备注
用户将鼠标光标置于 CMFCAutoHideButton
上方时,框架会在短暂的延迟后显示关联的窗口。 此参数确定该延迟的时长(以毫秒为单位)。
CMFCAutoHideBar::OnShowControlBarMenu
virtual BOOL OnShowControlBarMenu(CPoint);
参数
[in] CPoint
返回值
注解
CMFCAutoHideBar::RemoveAutoHideWindow
删除并销毁自动隐藏窗口。
BOOL RemoveAutoHideWindow(CDockablePane* pAutoHideWnd);
参数
CDockablePane* pAutoHideWnd 要删除的自动隐藏窗口。
返回值
若成功,则为 TRUE;否则为 FALSE。
备注
CMFCAutoHideBar::SetActiveInGroup
将自动隐藏栏标记为活动。
virtual void SetActiveInGroup(BOOL bActive);
参数
[in] BOOL bActive 若要设置为活动则为 TRUE;否则为 FALSE。
注解
CMFCAutoHideBar::SetRecentVisibleState
void SetRecentVisibleState(BOOL bState);
参数
bState
[in] 要设置的状态。
备注
CMFCAutoHideBar::ShowAutoHideWindow
显示自动隐藏窗口。
BOOL ShowAutoHideWindow(
CDockablePane* pAutoHideWnd,
BOOL bShow,
BOOL bDelay);
参数
pAutoHideWnd
[in] 要显示的窗口。
bShow
[in] 若要显示窗口,则为 TRUE。
bDelay
[in] 忽略此参数。
返回值
若成功,则为 TRUE;否则为 FALSE。
注解
CMFCAutoHideBar::StretchPane
调整自动隐藏栏在其折叠状态下的大小,以适应 CMFCAutoHideButton
对象。
virtual CSize StretchPane(
int nLength,
BOOL bVert);
参数
nLength
[in] 在基实现中未使用该值。 在派生的实现中,使用此值可指示已调整大小的窗格的长度。
bVert
[in] 在基实现中未使用该值。 在派生的实现中,使用 TRUE 来处理自动隐藏栏垂直折叠的情况,使用 FALSE 处理自动隐藏栏水平折叠的情况。
返回值
已调整大小的窗格的最终大小。
备注
派生的类可以替代此方法以自定义该行为。
CMFCAutoHideBar::UnSetAutoHideMode
对一组自动隐藏栏禁用自动隐藏模式。
void UnSetAutoHideMode(CDockablePane* pFirstBarInGroup)
参数
[in] pFirstBarInGroup 指向组中第一个自动隐藏栏的指针。
注解
CMFCAutoHideBar::UpdateVisibleState
由框架在需要重绘自动隐藏栏时调用。
void UpdateVisibleState();