CBaseTabbedPane Class
Extends the functionality of the CDockablePane Class to support the creation of tabbed windows.
Syntax
class CBaseTabbedPane : public CDockablePane
Members
Public Constructors
Name | Description |
---|---|
CBaseTabbedPane::CBaseTabbedPane |
Default constructor. |
Public Methods
Name | Description |
---|---|
CBaseTabbedPane::AddTab | Adds a new tab to a tabbed pane. |
CBaseTabbedPane::AllowDestroyEmptyTabbedPane | Specifies whether an empty tabbed pane can be destroyed. |
CBaseTabbedPane::ApplyRestoredTabInfo | Applies tab settings, which are loaded from the registry, to a tabbed pane. |
CBaseTabbedPane::CanFloat | Determines whether the pane can float. (Overrides CBasePane::CanFloat.) |
CBaseTabbedPane::CanSetCaptionTextToTabName | Determines whether the caption for the tabbed pane should display the same text as the active tab. |
CBaseTabbedPane::ConvertToTabbedDocument | (Overrides CDockablePane::ConvertToTabbedDocument.) |
CBaseTabbedPane::DetachPane | Converts one or more dockable panes to MDI tabbed documents. |
CBaseTabbedPane::EnableSetCaptionTextToTabName | Enables or disables the ability of the tabbed pane to synchronize caption text with the label text on the active tab. |
CBaseTabbedPane::FillDefaultTabsOrderArray | Restores the internal tab order to a default state. |
CBaseTabbedPane::FindBarByTabNumber | Returns a pane that resides in a tab when the tab is identified by a zero-based tab index. |
CBaseTabbedPane::FindPaneByID | Returns a pane that is identified by the pane ID. |
CBaseTabbedPane::FloatTab | Floats a pane, but only if the pane currently resides in a detachable tab. |
CBaseTabbedPane::GetDefaultTabsOrder | Returns the default order of tabs in the pane. |
CBaseTabbedPane::GetFirstVisibleTab | Retrieves a pointer to the first displayed tab. |
CBaseTabbedPane::GetMinSize | Retrieves the minimum allowed size for the pane. (Overrides CPane::GetMinSize.) |
CBaseTabbedPane::GetPaneIcon | Returns a handle to the pane icon. (Overrides CBasePane::GetPaneIcon.) |
CBaseTabbedPane::GetPaneList | Returns a list of panes that are contained in the tabbed pane. |
CBaseTabbedPane::GetTabArea | Returns the bounding rectangles for the top and bottom tab areas. |
CBaseTabbedPane::GetTabsNum | Returns the count of tabs in a tab window. |
CBaseTabbedPane::GetUnderlyingWindow | Gets the underlying (wrapped) tab window. |
CBaseTabbedPane::GetVisibleTabsNum | Returns the count of displayed tabs. |
CBaseTabbedPane::HasAutoHideMode | Determines whether the tabbed pane can be switched to auto-hide mode. |
CBaseTabbedPane::IsHideSingleTab | Determines whether the tabbed pane is hidden if only one tab is displayed. |
CBaseTabbedPane::LoadSiblingPaneIDs |
Used internally during serialization. |
CBaseTabbedPane::RecalcLayout | Recalculates layout information for the pane. (Overrides CPane::RecalcLayout.) |
CBaseTabbedPane::RemovePane | Removes a pane from the tabbed pane. |
CBaseTabbedPane::SaveSiblingBarIDs |
Used internally during serialization. |
CBaseTabbedPane::Serialize |
(Overrides CDockablePane::Serialize.) |
CBaseTabbedPane::SerializeTabWindow |
Used internally during serialization. |
CBaseTabbedPane::SetAutoDestroy | Determines whether the tabbed control bar will be destroyed automatically. |
CBaseTabbedPane::SetAutoHideMode | Toggles the docking pane between displayed and auto-hide mode. (Overrides CDockablePane::SetAutoHideMode.) |
CBaseTabbedPane::ShowTab | Shows or hides a tab. |
Remarks
This class is an abstract class and cannot be instantiated. It implements the services that are common to all kinds of tabbed panes.
Currently, the library includes two derived tabbed pane classes: CTabbedPane Class and CMFCOutlookBar Class.
A CBaseTabbedPane
object wraps a pointer to a CMFCBaseTabCtrl Class object. CMFCBaseTabCtrl Class then becomes a child window of the tabbed pane.
For more information about how to create tabbed panes, see CDockablePane Class, CTabbedPane Class, and CMFCOutlookBar Class.
Inheritance Hierarchy
CBaseTabbedPane
Requirements
Header: afxBaseTabbedPane.h
CBaseTabbedPane::AddTab
Adds a new tab to a tabbed pane.
virtual BOOL AddTab(
CWnd* pNewBar,
BOOL bVisible = TRUE,
BOOL bSetActive = TRUE,
BOOL bDetachable = TRUE);
Parameters
pNewBar
[in, out] A pointer to the pane to add. This pointer may become invalid after you call this method. For more information, see the Remarks section.
bVisible
[in] TRUE to make the tab visible; otherwise, FALSE.
bSetActive
[in] TRUE to make the tab the active tab; otherwise, FALSE.
bDetachable
[in] TRUE to make the tab detachable; otherwise, FALSE.
Return Value
TRUE if the pane was successfully added as a tab and was not destroyed in the process. FALSE if the pane being added is an object of type CBaseTabbedPane
. For more information, see the Remarks section.
Remarks
Call this method to add a pane as a new tab on a tabbed pane. If pNewBar points to an object of type CBaseTabbedPane
, all its tabs are copied onto the tabbed pane and then pNewBar is destroyed. Thus, pNewBar becomes an invalid pointer and should not be used.
CBaseTabbedPane::AllowDestroyEmptyTabbedPane
Specifies whether an empty tabbed pane can be destroyed.
virtual BOOL AllowDestroyEmptyTabbedPane() const;
Return Value
TRUE if an empty tabbed pane can be destroyed; otherwise, FALSE. The default implementation always returns TRUE.
Remarks
If an empty tabbed pane is not allowed to be destroyed, the framework hides the pane instead.
CBaseTabbedPane::ApplyRestoredTabInfo
Loads tab settings from the registry and applies them to a tabbed pane.
virtual void ApplyRestoredTabInfo(BOOL bUseTabIndexes = FALSE);
Parameters
bUseTabIndexes
[in] This parameter is used internally by the framework.
Remarks
This method is called by the framework when it reloads docking state information from the registry. The method obtains information about tab order and tab names for a tabbed pane.
CBaseTabbedPane::CanFloat
Specifies whether the tabbed pane can float.
virtual BOOL CanFloat() const;
Return Value
TRUE if the pane can float; otherwise, FALSE.
CBaseTabbedPane::CanSetCaptionTextToTabName
Determines whether the caption for the tabbed pane should display the same text as the active tab.
virtual BOOL CanSetCaptionTextToTabName() const;
Return Value
TRUE if the caption text of the tabbed pane is set to the text of the active tab; otherwise, FALSE.
Remarks
The method is used to determine whether the text displayed on the tabbed pane caption duplicates the label of the active tab. You can enable or disable this functionality by calling CBaseTabbedPane::EnableSetCaptionTextToTabName.
CBaseTabbedPane::ConvertToTabbedDocument
Converts one or more dockable panes to MDI tabbed documents.
virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);
Parameters
bActiveTabOnly
[in] When you convert a tabbed pane, specify TRUE to convert only the active tab. Specify FALSE to convert all tabs in the pane.
CBaseTabbedPane::DetachPane
Detaches a pane from the tabbed pane.
virtual BOOL DetachPane(
CWnd* pBar,
BOOL bHide = FALSE);
Parameters
pBar
[in] Pointer to the pane to detach.
bHide
[in] Boolean parameter that specifies whether the framework hides the pane after it is detached.
Return Value
TRUE if the framework successfully detaches the pane; FALSE if pBar is NULL or refers to a pane that is not in the tabbed pane.
Remarks
The framework floats the detached pane if possible. For more information, see CBasePane::CanFloat.
CBaseTabbedPane::EnableSetCaptionTextToTabName
Enables or disables the ability of the tabbed pane to synchronize caption text with the label text on the active tab.
virtual void EnableSetCaptionTextToTabName(BOOL bEnable);
Parameters
bEnable
[in] TRUE to synchronize the tabbed pane caption with the active tab caption; otherwise, FALSE.
CBaseTabbedPane::FillDefaultTabsOrderArray
Restores the internal tab order to a default state.
void FillDefaultTabsOrderArray();
Remarks
This method is called when the framework restores an Outlook bar to an initial state.
CBaseTabbedPane::FindPaneByID
Returns a pane identified by the pane ID.
virtual CWnd* FindPaneByID(UINT uBarID);
Parameters
uBarID
[in] Specifies the ID of the pane to find.
Return Value
A pointer to the pane if it was found; otherwise, NULL.
Remarks
This method compares all tabs in the pane and returns the one with the ID specified by the uBarID parameter.
CBaseTabbedPane::FindBarByTabNumber
Returns a pane that resides in a tab.
virtual CWnd* FindBarByTabNumber(
int nTabNum,
BOOL bGetWrappedBar = FALSE);
Parameters
nTabNum
[in] Specifies the zero-based index of the tab to retrieve.
bGetWrappedBar
[in] TRUE to return the underlying (wrapped) window of the pane instead of the pane itself; otherwise FALSE. This only applies to panes derived from CDockablePaneAdapter.
Return Value
If the pane is found, then a valid pointer to the pane being searched for is returned; otherwise, NULL.
Remarks
Call this method to retrieve the pane residing in the tab specified by the nTabNum parameter.
CBaseTabbedPane::FloatTab
Floats a pane, but only if the pane currently resides in a detachable tab.
virtual BOOL FloatTab(
CWnd* pBar,
int nTabID,
AFX_DOCK_METHOD dockMethod,
BOOL bHide = FALSE);
Parameters
pBar
[in, out] A pointer to the pane to float.
nTabID
[in] Specifies the zero-based index of the tab to float.
dockMethod
[in] Specifies the method to use to make the pane float. For more information, see the Remarks section.
bHide
[in] TRUE to hide the pane before floating; otherwise, FALSE.
Return Value
TRUE if the pane floated; otherwise, FALSE.
Remarks
Call this method to float a pane that currently resides in a detachable tab.
If you want to detach a pane programmatically, specify DM_SHOW for the dockMethod parameter. If you want to float the pane in the same position where it floated previously, specify DM_DBL_CLICK as the dockMethod parameter.
CBaseTabbedPane::GetDefaultTabsOrder
Returns the default order of tabs in the pane.
const CArray<int,int>& GetDefaultTabsOrder();
Return Value
A CArray
object that specifies the default order of tabs in the pane.
Remarks
The framework calls this method when an Outlook bar is reset to an initial state.
CBaseTabbedPane::GetFirstVisibleTab
Retrieves a pointer to the first displayed tab.
virtual CWnd* GetFirstVisibleTab(int& iTabNum);
Parameters
iTabNum
[in] A reference to an integer. This method writes the zero-based index of the first displayed tab to this parameter, or -1 if no displayed tab is found.
Return Value
If successful, a pointer to the first displayed tab; otherwise, NULL.
CBaseTabbedPane::GetMinSize
Retrieves the minimum allowed size for the pane.
virtual void GetMinSize(CSize& size) const;
Parameters
size
[out] A CSize
object that is filled with the minimum allowed size.
Remarks
If consistent handling of minimum pane sizes is active ( CPane::m_bHandleMinSize), size is filled with the minimum allowed size for the active tab. Otherwise, size is filled with the return value of CPane::GetMinSize.
CBaseTabbedPane::GetPaneIcon
Retrieves the minimum allowed size for the pane.
virtual void GetMinSize(CSize& size) const;
Parameters
size
[out] A CSize
object that is filled with the minimum allowed size.
Remarks
If consistent handling of minimum pane sizes is active ( CPane::m_bHandleMinSize), size is filled with the minimum allowed size for the active tab. Otherwise, size is filled with the return value of CPane::GetMinSize.
CBaseTabbedPane::GetPaneList
Returns a list of panes that are contained in the tabbed pane.
virtual void GetPaneList(
CObList& lst,
CRuntimeClass* pRTCFilter = NULL);
Parameters
lst
[out] A CObList
that is filled with the panes that are contained in the tabbed pane.
pRTCFilter
[in] If it is not NULL, the returned list contains only panes that are of the specified runtime class.
CBaseTabbedPane::GetTabArea
Returns the bounding rectangles for the top and bottom tab areas.
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const = 0;
Parameters
rectTabAreaTop
[out] Receives the screen coordinates of the upper tab area.
rectTabAreaBottom
[out] Receives the screen coordinates of the lower tab area.
Remarks
Call this method to determine the bounding rectangles, in screen coordinates, for the upper and lower tab areas.
CBaseTabbedPane::GetTabsNum
Returns the count of tabs in a tab window.
virtual int GetTabsNum() const;
Return Value
The number of tabs in the tabbed pane.
CBaseTabbedPane::GetUnderlyingWindow
Gets the underlying (wrapped) tab window.
virtual CMFCBaseTabCtrl* GetUnderlyingWindow();
Return Value
A pointer to the underlying tab window.
CBaseTabbedPane::GetVisibleTabsNum
Returns the count of visible tabs.
virtual int GetVisibleTabsNum() const;
Return Value
The number of visible tabs, which will be greater than or equal to zero.
Remarks
Call this method to determine the number of visible tabs in the tabbed pane.
CBaseTabbedPane::HasAutoHideMode
Determines whether the tabbed pane can be switched to autohide mode.
virtual BOOL HasAutoHideMode() const;
Return Value
TRUE if the pane can be switched to autohide mode; otherwise, FALSE.
Remarks
If autohide mode is disabled, no pin button is displayed on the tabbed pane caption.
CBaseTabbedPane::IsHideSingleTab
Determines whether the tabbed pane is hidden if only one tab is displayed.
virtual BOOL IsHideSingleTab() const;
Return Value
TRUE if the tab window is not shown when there is only one visible tab; otherwise, FALSE.
Remarks
If the pane is not displayed because only one tab is open, you can call this method to determine whether the tabbed pane is working correctly.
CBaseTabbedPane::RemovePane
Removes a pane from the tabbed pane.
virtual BOOL RemovePane(CWnd* pBar);
Parameters
pBar
[in, out] A pointer to the pane to remove from the tabbed pane.
Return Value
TRUE if the pane was successfully removed from the tabbed pane and if the tabbed pane is still valid. FALSE if the last pane has been removed from the tabbed pane and the tabbed pane is about to be destroyed. If the return value is FALSE, do not use the tabbed pane any more.
Remarks
Call this method to remove the pane specified by the pBar parameter from the tabbed pane.
CBaseTabbedPane::SetAutoDestroy
Determines whether the tabbed control bar will be destroyed automatically.
void SetAutoDestroy(BOOL bAutoDestroy = TRUE);
Parameters
bAutoDestroy
[in] TRUE if the tabbed pane was created dynamically and you are not controlling its lifetime; otherwise, FALSE.
Remarks
Set the auto-destroy mode to TRUE if you create a tabbed pane dynamically and if you are not controlling its lifetime. If auto-destroy mode is TRUE, the tabbed pane will be destroyed automatically by the framework.
CBaseTabbedPane::ShowTab
Shows or hides a tab.
virtual BOOL ShowTab(
CWnd* pBar,
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
Parameters
pBar
[in] A pointer to the pane to show or hide.
bShow
[in] TRUE to show the pane; FALSE to hide the pane.
bDelay
[in] TRUE to delay the adjustment of the tab layout; otherwise, FALSE.
bActivate
[in] TRUE to make the tab the active tab; otherwise, FALSE.
Return Value
TRUE if the tab was either shown or hidden successfully; otherwise, FALSE.
Remarks
When you call this method, a pane is either shown or hidden, depending on the value of the bShow parameter. If you hide a tab and it is the last visible tab in the underlying tab window, the tabbed pane is hidden. If you show a tab when there were previously no tabs visible, the tabbed pane is shown.
CBaseTabbedPane::RecalcLayout
Recalculates layout information for the pane.
virtual void RecalcLayout();
Remarks
If the pane is floating, this method notifies the framework to resize the pane to the current size of the mini-frame.
If the pane is docked, this method does nothing.
CBaseTabbedPane::SetAutoHideMode
Sets the auto-hide mode for detachable panes in the tabbed pane.
virtual CMFCAutoHideToolBar* SetAutoHideMode(
BOOL bMode,
DWORD dwAlignment,
CMFCAutoHideToolBar* pCurrAutoHideBar = NULL,
BOOL bUseTimer = TRUE);
Parameters
bMode
[in] TRUE to enable auto-hide mode; FALSE to enable regular docking mode.
dwAlignment
[in] Specifies the alignment of the auto-hide pane that is to be created. For a list of possible values, see CPane::MoveByAlignment.
pCurrAutoHideBar
[in, out] A pointer to the current auto-hide toolbar. Can be NULL.
bUseTimer
[in] Specifies whether to use the auto-hide effect when the user switches the pane to auto-hide mode, or to hide the pane immediately.
Return Value
A pointer to the auto-hide toolbar that is created when switching to auto-hide mode, or NULL if no toolbar is created.
Remarks
The framework calls this method when a user chooses the pin button to switch the tabbed pane to auto-hide mode or to regular docking mode.
Auto-hide mode is set for each detachable pane in the tabbed pane. Panes that are non-detachable are ignored. For more information, see CMFCBaseTabCtrl::EnableTabDetach.
Call this method to switch a tabbed pane to auto-hide mode programmatically. The pane must be docked to the main frame window ( CDockablePane::GetDefaultPaneDivider must return a valid pointer to the CPaneDivider).