CAutoHideDockSite Class

 

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

The CAutoHideDockSite extends the CDockSite Class to implement auto-hide dock panes.

Syntax

class CAutoHideDockSite : public CDockSite  

Members

Public Constructors

Name Description
CAutoHideDockSite::CAutoHideDockSite Constructs a CAutoHideDockSite object.
CAutoHideDockSite::~CAutoHideDockSite Destructor.

Public Methods

Name Description
CAutoHideDockSite::AllowShowOnPaneMenu Indicates whether the CAutoHideDockSite is shown on the pane menu.
CAutoHideDockSite::CanAcceptPane Determines whether a base pane object is derived from the CMFCAutoHideBar Class.
CAutoHideDockSite::DockPane Docks a pane to this CAuotHideDockSite object.
CAutoHideDockSite::GetAlignRect Retrieves the size of the dock site in screen coordinates.
CAutoHideDockSite::RepositionPanes Redraws the pane on the CAutoHideDockSite with the global margins and button spacing.
CAutoHideDockSite::SetOffsetLeft Sets the margin on the left side of the docking bar.
CAutoHideDockSite::SetOffsetRight Sets the margin on the right side of the docking bar.
CAutoHideDockSite::UnSetAutoHideMode Calls CMFCAutoHideBar::UnSetAutoHideMode for objects on the CAutoHideDockSite.

Data Members

Name Description
CAutoHideDockSite::m_nExtraSpace Defines the size of the space between the toolbars and the edge of the docking bar. This space is measured from either the left edge or the top edge, depending on the alignment for the dock space.

Remarks

When you call CFrameWndEx::EnableAutoHidePanes, the framework automatically creates a CAutoHideDockSite object. In most cases, you should not have to instantiate or use this class directly.

The docking bar is the gap between the left side of the dock pane and the left side of the CMFCAutoHideButton Class.

Inheritance Hierarchy

CObject

CCmdTarget

CWnd

CBasePane

CDockSite

Example

The following example demonstrates how to retrieve a CAutoHideDockSite object from a CMFCAutoHideBar object, and how to set the left and right margins of the docking bar.

 CAutoHideDockSite* pParentDockBar = DYNAMIC_DOWNCAST(CAutoHideDockSite, pParentBar->GetParentDockSite());
    pParentDockBar->SetOffsetLeft(10);
    pParentDockBar->SetOffsetRight(10);

Requirements

Header: afxautohidedocksite.h

CAutoHideDockSite::CanAcceptPane

Determines whether a base pane is a CMFCAutoHideBar object or derived from CMFCAutoHideBar.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;  

Parameters

Parameter Description
[in] pBar The base pane that the framework tests.

Return Value

TRUE if pBar is derived from CMFCAutoHideBar; FALSE otherwise.

Remarks

If a base pane object is derived from CMFCAutoHideBar, it can contain a CAutoHideDockSite.

CAutoHideDockSite::DockPane

Docks a pane to this CAutoHideDockSite object.

virtual void DockPane(
    CPane* pWnd,  
    AFX_DOCK_METHOD dockMethod,  
    LPRECT lpRect = NULL);

Parameters

Parameter Description
[in] pWnd The pane that the framework docks.
[in] dockMethod Docking options for the pane.
[in] lpRect A rectangle that specifies the boundaries for the docked pane.

Remarks

The default implementation does not use the parameter dockMethod, which is provided for future use.

If lpRect is NULL, the framework puts the pane in the default location on the dock site. If the dock site is horizontal, the default location is at the far left of the dock site. Otherwise, the default location is at the top of the dock site.

CAutoHideDockSite::GetAlignRect

Retrieves the size of the dock site in screen coordinates.

void GetAlignRect(CRect& rect) const;  

Parameters

Parameter Description
[in] rect A reference to a rectangle. The method stores the size of the dock site in this rectangle.

Remarks

The rectangle is adjusted for the offset margins so that they are not included.

CAutoHideDockSite::m_nExtraSpace

The size of the space between the edges of the CAutoHideDockSite Class and the CMFCAutoHideBar Class objects.

static int m_nExtraSpace;  

Remarks

When a CMFCAutoHideBar is docked at a CAutoHideDockSite, it should not occupy the whole dock site. This global variable controls the extra space between the left or top border of the CMFCAutoHideBar and the corresponding CAutoHideDockSite edge. Whether the top or left edge is used depends on the current alignment.

CAutoHideDockSite::SetOffsetLeft

Sets the margin on the left side of the docking bar.

void SetOffsetLeft(int nOffset);

Parameters

[in] nOffset
The new offset.

Remarks

CMFCAutoHideBar objects are positioned statically on the CAutoHideDockSite object. This means that the user cannot manually change the location of CMFCAutoHideBar objects. The SetOffsetLeft method controls the spacing between the left side of the left-most CMFCAutoHideBar and the left side of the CAutoHideDockSite.

CAutoHideDockSite::SetOffsetRight

Sets the margin on the right side of the docking bar.

void SetOffsetRight(int nOffset);

Parameters

[in] nOffset
The new offset.

Remarks

CMFCAutoHideBar objects are positioned statically on the CAutoHideDockSite object. This means that the user cannot manually change the location of the CMFCAutoHideBar objects. The SetOffsetRight method controls the spacing between the right side of the right-most CMFCAutoHideBar and the right side of the CAutoHideDockSite.

CAutoHideDockSite::RepositionPanes

Redraws the panes on the CAutoHideDockSite.

virtual void RepositionPanes(CRect& rectNewClientArea);

Parameters

Parameter Description
[in] rectNewClientArea A reserved value.

Remarks

The default implementation does not use rectNewClientArea. It redraws the panes with the global toolbar margins and button spacing.

CAutoHideDockSite::UnSetAutoHideMode

Calls CMFCAutoHideBar::UnSetAutoHideMode for objects on the dock site.

void UnSetAutoHideMode(CMFCAutoHideBar* pAutoHideToolbar);

Parameters

Parameter Description
[in] pAutoHideToolbar A pointer to a CMFCAutoHideBar object pane located on the CAutoHideDockSite.

Remarks

This method searches for the row that contains pAutoHideToolbar. It calls CMFCAutoHideBar.UnSetAutoHideMode for all the CMFCAutoHideBar objects on that row. If pAutoHideToolbar is not found or it is NULL, this method calls CMFCAutoHideBar.UnSetAutoHideMode for all the CMFCAutoHideBar objects on the CAutoHideDockSite.

See Also

Hierarchy Chart
Classes
CDockSite Class