CMFCAutoHideBar Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at CMFCAutoHideBar Class.

The CMFCAutoHideBar class is a special toolbar class that implements the auto-hide feature.

Syntax

class CMFCAutoHideBar : public CPane  

Members

Public Constructors

Name Description
CMFCAutoHideBar::CMFCAutoHideBar

Public Methods

Name Description
CMFCAutoHideBar::AddAutoHideWindow
CMFCAutoHideBar::AllowShowOnPaneMenu (Overrides CPane::AllowShowOnPaneMenu.)
CMFCAutoHideBar::CalcFixedLayout (Overrides CBasePane::CalcFixedLayout.)
CMFCAutoHideBar::Create Creates a control bar and attaches it to the CPane object. (Overrides CPane::Create.)
CMFCAutoHideBar::GetFirstAHWindow
CMFCAutoHideBar::GetVisibleCount
CMFCAutoHideBar::OnShowControlBarMenu Called by the framework when a special pane menu is about to be displayed. (Overrides CPane::OnShowControlBarMenu.)
CMFCAutoHideBar::RemoveAutoHideWindow
CMFCAutoHideBar::SetActiveInGroup (Overrides CPane::SetActiveInGroup.)
CMFCAutoHideBar::SetRecentVisibleState
CMFCAutoHideBar::ShowAutoHideWindow
CMFCAutoHideBar::StretchPane Stretches a pane vertically or horizontally. (Overrides CBasePane::StretchPane.)
CMFCAutoHideBar::UnSetAutoHideMode
CMFCAutoHideBar::UpdateVisibleState

Data Members

Name Description
CMFCAutoHideBar::m_nShowAHWndDelay The time delay between the moment when the user places the mouse cursor over a CMFCAutoHideButton Class and the moment when the framework shows the associated window.

Remarks

When the user switches a dock pane to auto-hide mode, the framework automatically creates a CMFCAutoHideBar object. It also creates the necessary CAutoHideDockSite and CMFCAutoHideButton objects. Each CAutoHideDockSite object is associated with an individual CMFCAutoHideButton.

The CMFCAutoHideBar class implements the display of a CAutoHideDockSite when a user's mouse hovers over a CMFCAutoHideButton. When the toolbar receives a WM_MOUSEMOVE message, CMFCAutoHideBar starts a timer. When the timer finishes, it sends the toolbar a WM_TIMER event notification. The toolbar handles this event by checking whether the mouse pointer is positioned over the same auto-hide button that it was positioned over when the timer started. If it is, the attached CAutoHideDockSite is displayed.

You can control the length of the timer's delay by setting m_nShowAHWndDelay. The default value is 400 ms.

Example

The following example demonstrates how to construct a CMFCAutoHideBar object and use its GetDockSiteRow method.

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

Inheritance Hierarchy

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCAutoHideBar

Requirements

Header: afxautohidebar.h

CMFCAutoHideBar::AddAutoHideWindow

Adds functionality to a CDockablePane window that enables it to auto-hide.

CMFCAutoHideButton* AddAutoHideWindow(
    CDockablePane* pAutoHideWnd,  
    DWORD dwAlignment);

Parameters

[in] pAutoHideWnd
The window that you want to hide.

[in] dwAlignment
A value that specifies the alignment of the auto-hide button with the application window.

Return Value

Remarks

The dwAlignment parameter indicates where the auto-hide button resides in the application. The parameter can be any one of the following values:

  • CBRS_ALIGN_LEFT

  • CBRS_ALIGN_RIGHT

  • CBRS_ALIGN_TOP

  • CBRS_ALIGN_BOTTOM

CMFCAutoHideBar::AllowShowOnPaneMenu

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL AllowShowOnPaneMenu() const;  

Return Value

Remarks

CMFCAutoHideBar::CalcFixedLayout

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual CSize CalcFixedLayout(
    BOOL bStretch,  
    BOOL bHorz);

Parameters

[in] bStretch
[in] bHorz

Return Value

Remarks

CMFCAutoHideBar::CMFCAutoHideBar

Constructs a CMFCAutoHideBar object.

CMFCAutoHideBar();

Remarks

CMFCAutoHideBar::Create

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL Create(
    LPCTSTR lpszClassName,  
    DWORD dwStyle,  
    const RECT& rect,  
    CWnd* pParentWnd,  
    UINT nID,  
    DWORD dwControlBarStyle = AFX_DEFAULT_PANE_STYLE,  
    CCreateContext* pContext = NULL);

Parameters

[in] lpszClassName
[in] dwStyle
[in] rect
[in] pParentWnd
[in] nID
[in] dwControlBarStyle
[in] pContext

Return Value

Remarks

CMFCAutoHideBar::GetFirstAHWindow

Returns a pointer to the first auto-hide window in the application.

CDockablePane* GetFirstAHWindow();

Return Value

The first auto-hide window in the application, or NULL if there isn't one.

Remarks

CMFCAutoHideBar::GetVisibleCount

Gets the number of visible auto-hide buttons.

int GetVisibleCount();

Return Value

Returns the number of visible auto-hide buttons.

Remarks

CMFCAutoHideBar::m_nShowAHWndDelay

The time delay between the moment when the user places the mouse cursor over a CMFCAutoHideButton Class and the moment when the framework shows the associated window.

int CMFCAutoHideBar::m_nShowAHWndDelay = 400;  

Remarks

When the user places the mouse cursor over a CMFCAutoHideButton, there is a slight delay before the framework displays the associated window. This parameter determines the length of that delay in milliseconds.

CMFCAutoHideBar::OnShowControlBarMenu

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

virtual BOOL OnShowControlBarMenu(CPoint);

Parameters

[in] CPoint

Return Value

Remarks

CMFCAutoHideBar::RemoveAutoHideWindow

Removes and destroys the auto-hide window.

    BOOL RemoveAutoHideWindow(CDockablePane* pAutoHideWnd);

Parameters

CDockablePane* pAutoHideWnd
The auto-hide window to remove.

Return Value

TRUE if successful; otherwise FALSE.

Remarks

CMFCAutoHideBar::SetActiveInGroup

Flags an auto-hide bar as active.

virtual void SetActiveInGroup(BOOL bActive);  

Parameters

[in] BOOL bActive
TRUE to set to active; otherwise FALSE.

Remarks

See CPane::SetActiveInGroup.

CMFCAutoHideBar::SetRecentVisibleState

This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

void SetRecentVisibleState(BOOL bState);

Parameters

[in] bState

Remarks

CMFCAutoHideBar::ShowAutoHideWindow

Shows the auto-hide window.

BOOL ShowAutoHideWindow(
        CDockablePane* pAutoHideWnd,  
        BOOL bShow,  
        BOOL bDelay);  

Parameters

[in] CDockablePane* pAutoHideWnd
[in] BOOL bShow
TRUE to show the window.

[in] BOOL bDelay
This parameter is ignored.

Return Value

TRUE if successful; otherwise FALSE.

Remarks

CMFCAutoHideBar::StretchPane

Resizes the auto-hide bar in its collapsed state to fit the CMFCAutoHideButton object.

virtual CSize StretchPane(
    int nLength,  
    BOOL bVert);

Parameters

[in] nLength
The value is unused in the base implementation. In derived implementations, use this value to indicate the length of the resized pane.

[in] bVert
The value is unused in the base implementation. In derived implementations, use TRUE to handle the case where the auto-hide bar is collapsed vertically, and FALSE for the case where the auto-hide bar is collapsed horizontally.

Return Value

The resulting size of the resized pane.

Remarks

Derived classes can override this method to customize the behavior.

CMFCAutoHideBar::UnSetAutoHideMode

Disables auto-hide mode for a group of auto-hide bars.

void UnSetAutoHideMode
(CDockablePane* pFirstBarInGroup)  

Parameters

[in] pFirstBarInGroup
A pointer to the first auto-hide bar in the group.

Remarks

CMFCAutoHideBar::UpdateVisibleState

Called by the framework when the auto-hide bar needs to be redrawn.

void UpdateVisibleState();

Remarks

See Also

Hierarchy Chart
Classes
CPane Class
CAutoHideDockSite Class
CMFCAutoHideButton Class