CMFCAutoHideBar 类

CMFCAutoHideBar 类是实现自动隐藏功能的特殊工具栏类。

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

语法

class CMFCAutoHideBar : public CPane

成员

公共构造函数

名称 描述
CMFCAutoHideBar::CMFCAutoHideBar

公共方法

名称 描述
CMFCAutoHideBar::AddAutoHideWindow
CMFCAutoHideBar::AllowShowOnPaneMenu (替代 CPane::AllowShowOnPaneMenu。)
CMFCAutoHideBar::CalcFixedLayout (替代 CBasePane::CalcFixedLayout。)
CMFCAutoHideBar::Create 创建控制条并将其附加到 CPane 对象。 (替代 CPane::Create
CMFCAutoHideBar::GetFirstAHWindow
CMFCAutoHideBar::GetVisibleCount
CMFCAutoHideBar::OnShowControlBarMenu 当即将显示特殊窗格菜单时由框架调用。 (替代 CPane::OnShowControlBarMenu。)
CMFCAutoHideBar::RemoveAutoHideWindow
CMFCAutoHideBar::SetActiveInGroup (替代 CPane::SetActiveInGroup。)
CMFCAutoHideBar::SetRecentVisibleState
CMFCAutoHideBar::ShowAutoHideWindow
CMFCAutoHideBar::StretchPane 垂直或水平拉伸窗格。 (替代 CBasePane::StretchPane。)
CMFCAutoHideBar::UnSetAutoHideMode
CMFCAutoHideBar::UpdateVisibleState

数据成员

名称 描述
CMFCAutoHideBar::m_nShowAHWndDelay 用户将鼠标光标置于 CMFCAutoHideButton 类上方的时刻与框架显示关联窗口的时刻之间的时间延迟。

注解

当用户将停靠窗格切换为自动隐藏模式时,框架会自动创建 CMFCAutoHideBar 对象。 它还会创建所需的 CAutoHideDockSiteCMFCAutoHideButton 对象。 每个 CAutoHideDockSite 对象都与单个 CMFCAutoHideButton 关联。

CMFCAutoHideBar 类在用户鼠标悬停在 CMFCAutoHideButton 上方时实现 CAutoHideDockSite 的显示。 当工具栏收到 WM_MOUSEMOVE 消息时,CMFCAutoHideBar 会启动计时器。 当计时器完成时,它会向工具栏发送 WM_TIMER 事件通知。 工具栏通过检查鼠标指针是否位于它在计时器启动时所处的相同自动隐藏按钮上,来处理此事件。 如果是,则显示附加的 CAutoHideDockSite

可以通过设置 m_nShowAHWndDelay 来控制计时器延迟的长度。 默认值为 400 毫秒。

示例

下列示例演示如何构造 CMFCAutoHideBar 对象并使用其 GetDockSiteRow 方法。

CMFCAutoHideBar *pParentBar = new CMFCAutoHideBar();
CDockingPanesRow *pParentRow = pParentBar->GetDockSiteRow();

继承层次结构

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCAutoHideBar

要求

标头: 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。

注解

请参阅 CPane::SetActiveInGroup

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();

备注

另请参阅

层次结构图

CPane 类
CAutoHideDockSite 类
CMFCAutoHideButton 类