CBaseTabbedPane 类

扩展 CDockablePane Class 的功能以支持创建选项卡式窗口。

语法

class CBaseTabbedPane : public CDockablePane

成员

公共构造函数

名称 描述
CBaseTabbedPane::CBaseTabbedPane 默认构造函数。

公共方法

名称 描述
CBaseTabbedPane::AddTab 向选项卡式窗格添加新选项卡。
CBaseTabbedPane::AllowDestroyEmptyTabbedPane 指定是否可以销毁空的选项卡式窗格。
CBaseTabbedPane::ApplyRestoredTabInfo 将从注册表加载的选项卡设置应用于选项卡式窗格。
CBaseTabbedPane::CanFloat 确定窗格是否可以浮动。 (替代 CBasePane::CanFloat。)
CBaseTabbedPane::CanSetCaptionTextToTabName 确定选项卡式窗格的标题是否应显示与活动选项卡相同的文本。
CBaseTabbedPane::ConvertToTabbedDocument (替代 CDockablePane::ConvertToTabbedDocument。)
CBaseTabbedPane::DetachPane 将一个或多个可停靠的窗格转换为 MDI 选项卡式文档。
CBaseTabbedPane::EnableSetCaptionTextToTabName 启用或禁用选项卡式窗格使标题文本与活动选项卡上的标签文本同步的功能。
CBaseTabbedPane::FillDefaultTabsOrderArray 将内部选项卡顺序恢复为默认状态。
CBaseTabbedPane::FindBarByTabNumber 当选项卡由从零开始的选项卡索引标识时,返回位于选项卡中的窗格。
CBaseTabbedPane::FindPaneByID 返回由窗格 ID 标识的窗格。
CBaseTabbedPane::FloatTab 仅当窗格中当前驻留在拆离的选项卡中时浮动窗格。
CBaseTabbedPane::GetDefaultTabsOrder 返回窗格中选项卡的默认顺序。
CBaseTabbedPane::GetFirstVisibleTab 检索指向第一个显示的选项卡的指针。
CBaseTabbedPane::GetMinSize 检索窗格的最小允许大小。 (重写 CPane::GetMinSize。)
CBaseTabbedPane::GetPaneIcon 返回窗格图标的句柄。 (替代 CBasePane::GetPaneIcon。)
CBaseTabbedPane::GetPaneList 返回选项卡式窗格中包含的窗格列表。
CBaseTabbedPane::GetTabArea 返回顶部和底部选项卡区域的范围框。
CBaseTabbedPane::GetTabsNum 返回选项卡窗口中选项卡的计数。
CBaseTabbedPane::GetUnderlyingWindow 获取基础(已包装)选项卡窗口。
CBaseTabbedPane::GetVisibleTabsNum 返回显示的选项卡的计数。
CBaseTabbedPane::HasAutoHideMode 确定是否可以将选项卡式窗格切换为自动隐藏模式。
CBaseTabbedPane::IsHideSingleTab 确定在仅显示一个选项卡时是否隐藏选项卡式窗格。
CBaseTabbedPane::LoadSiblingPaneIDs 序列化期间在内部使用。
CBaseTabbedPane::RecalcLayout 重新计算窗格的布局信息。 (替代 CPane::RecalcLayout。)
CBaseTabbedPane::RemovePane 从选项卡式窗格中删除窗格。
CBaseTabbedPane::SaveSiblingBarIDs 序列化期间在内部使用。
CBaseTabbedPane::Serialize (替代 CDockablePane::Serialize。)
CBaseTabbedPane::SerializeTabWindow 序列化期间在内部使用。
CBaseTabbedPane::SetAutoDestroy 确定是否自动销毁选项卡控件条。
CBaseTabbedPane::SetAutoHideMode 在显示模式和自动隐藏模式之间切换停靠窗格。 (替代 CDockablePane::SetAutoHideMode。)
CBaseTabbedPane::ShowTab 显示或隐藏选项卡。

备注

此类为抽象类,不能实例化。 它实现对所有类型的选项卡式窗格通用的服务。

目前,该库包括两个派生的选项卡式窗格类:CTabbedPane 类CMFCOutlookBar 类

CBaseTabbedPane 对象包装一个指向 CMFCBaseTabCtrl 类对象的指针。 CMFCBaseTabCtrl 类随后成为选项卡式窗格的子窗口。

有关如何创建选项卡式窗格的详细信息,请参阅 CDockablePane 类CTabbedPane 类CMFCOutlookBar 类

继承层次结构

CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

CBaseTabbedPane

要求

标头:afxBaseTabbedPane.h

CBaseTabbedPane::AddTab

向选项卡式窗格添加新选项卡。

virtual BOOL AddTab(
    CWnd* pNewBar,
    BOOL bVisible = TRUE,
    BOOL bSetActive = TRUE,
    BOOL bDetachable = TRUE);

参数

pNewBar
[in, out] 指向要添加的窗格的指针。 调用此方法后,该指针可能会失效。 有关详细信息,请参阅“备注”部分。

bVisible
[in] 要使选项卡可见,则为 TRUE;否则为 FALSE。

bSetActive
[in] 要使选项卡成为活动选项卡,则为 TRUE;否则为 FALSE。

bDetachable
[in] 要使选项卡可拆离,则为 TRUE;否则为 FALSE。

返回值

如果窗格已成功添加为选项卡且未在过程中销毁,则为 TRUE。 如果添加的窗格是 CBaseTabbedPane 类型的对象,则为 FALSE。 有关详细信息,请参阅“备注”部分。

注解

调用此方法可以将窗格添加为选项卡式窗格上的新选项卡。 如果 pNewBar 指向 CBaseTabbedPane 类型的对象,则将其所有选项卡复制到选项卡式窗格中,然后销毁 pNewBar。 因此,pNewBar 成为无效指针,不应该使用

CBaseTabbedPane::AllowDestroyEmptyTabbedPane

指定是否可以销毁空的选项卡式窗格。

virtual BOOL AllowDestroyEmptyTabbedPane() const;

返回值

如果可以销毁空的选项卡式窗格,则为 TRUE;否则为 FALSE。 默认实现始终返回 TRUE。

备注

如果不允许销毁空的选项卡式窗格,框架就会隐藏该窗格。

CBaseTabbedPane::ApplyRestoredTabInfo

从注册表加载选项卡设置,并将其应用于选项卡式窗格。

virtual void ApplyRestoredTabInfo(BOOL bUseTabIndexes = FALSE);

参数

bUseTabIndexes
[in] 此参数由框架在内部使用。

备注

当框架从注册表重新加载停靠状态信息时,将调用此方法。 该方法获取有关选项卡式窗格的选项卡顺序和选项卡名称的信息。

CBaseTabbedPane::CanFloat

指定选项卡式窗格是否可以浮动。

virtual BOOL CanFloat() const;

返回值

如果窗格可以浮动,则为 TRUE;否则为 FALSE。

CBaseTabbedPane::CanSetCaptionTextToTabName

确定选项卡式窗格的标题是否应显示与活动选项卡相同的文本。

virtual BOOL CanSetCaptionTextToTabName() const;

返回值

如果选项卡式窗格的标题文本设置为活动选项卡的文本,则为 TRUE;否则为 FALSE。

备注

该方法用于确定选项卡式窗格标题上显示的文本是否与活动选项卡的标签重复。可以通过调用 CBaseTabbedPane::EnableSetCaptionTextToTabName 来启用或禁用此功能。

CBaseTabbedPane::ConvertToTabbedDocument

将一个或多个可停靠的窗格转换为 MDI 选项卡式文档。

virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);

参数

bActiveTabOnly
[in] 转换选项卡式窗格时,指定为 TRUE 时可仅转换活动选项卡。指定为 FALSE 时可转换窗格中的所有选项卡。

CBaseTabbedPane::DetachPane

从选项卡式窗格中拆离窗格。

virtual BOOL DetachPane(
    CWnd* pBar,
    BOOL bHide = FALSE);

参数

pBar
[in] 指向要拆离的窗格的指针。

bHide
[in] 布尔参数,用于指定框架在拆离窗格后是否隐藏窗格。

返回值

如果框架成功拆离窗格,则为 TRUE;如果 pBar 为 NULL 或指向不在选项卡式窗格中的窗格,则为 FALSE

备注

框架在可能的情况下浮动拆离的窗格。 有关详细信息,请参阅

CBaseTabbedPane::EnableSetCaptionTextToTabName

启用或禁用选项卡式窗格使标题文本与活动选项卡上的标签文本同步的功能。

virtual void EnableSetCaptionTextToTabName(BOOL bEnable);

参数

bEnable
[in] 如果可将选项卡式窗格标题与活动选项卡标题同步,则为 TRUE;否则为 FALSE。

CBaseTabbedPane::FillDefaultTabsOrderArray

将内部选项卡顺序恢复为默认状态。

void FillDefaultTabsOrderArray();

备注

当框架将 Outlook 栏还原到初始状态时,将调用此方法。

CBaseTabbedPane::FindPaneByID

返回由窗格 ID 标识的窗格。

virtual CWnd* FindPaneByID(UINT uBarID);

参数

uBarID
[in] 指定要查找的窗格的 ID。

返回值

如果找到窗格,则是指向该窗格的指针;否则为空 NULL。

注解

此方法比较窗格中的所有选项卡,并返回具有 uBarID 参数指定的 ID 的选项卡

CBaseTabbedPane::FindBarByTabNumber

返回位于选项卡中的窗格。

virtual CWnd* FindBarByTabNumber(
    int nTabNum,
    BOOL bGetWrappedBar = FALSE);

参数

nTabNum
[in] 指定要检索的选项卡的从零开始的索引。

bGetWrappedBar
[in] 如果返回窗格的基础(已包装)窗口,而不是窗格本身,则为 TRUE;否则为 FALSE。 这仅适用于派生自 CDockablePaneAdapter 的窗格。

返回值

如果找到窗格,则返回指向正在搜索的窗格的有效指针;否则为 NULL。

备注

调用此方法检索驻留在由 nTabNum 参数指定的选项卡中的窗格

CBaseTabbedPane::FloatTab

仅当窗格中当前驻留在拆离的选项卡中时浮动窗格。

virtual BOOL FloatTab(
    CWnd* pBar,
    int nTabID,
    AFX_DOCK_METHOD dockMethod,
    BOOL bHide = FALSE);

参数

pBar
[in, out] 指向要浮动的窗格的指针。

nTabID
[in] 指定要浮动的选项卡的从零开始的索引。

dockMethod
[in] 指定用于使窗格浮动的方法。 有关详细信息,请参阅“备注”部分。

bHide
[in] 如果在窗格浮动之前进行隐藏,则为 TRUE;否则为 FALSE。

返回值

如果窗格已浮动,则为 TRUE;否则为 FALSE。

备注

调用此方法可浮动当前驻留在可分离选项卡中的窗格。

如果要以编程方式拆离窗格,请为 dockMethod 参数指定 DM_SHOW。 如果希望将窗格浮动到先前浮动的位置,请指定 DM_DBL_CLICK 作为 dockMethod 参数

CBaseTabbedPane::GetDefaultTabsOrder

返回窗格中选项卡的默认顺序。

const CArray<int,int>& GetDefaultTabsOrder();

返回值

一个 CArray 对象,指定窗格中选项卡的默认顺序。

备注

当 Outlook 栏重置为初始状态时,框架将调用此方法。

CBaseTabbedPane::GetFirstVisibleTab

检索指向第一个显示的选项卡的指针。

virtual CWnd* GetFirstVisibleTab(int& iTabNum);

参数

iTabNum
[in] 对整数的引用。 此方法将第一个显示的选项卡的从零开始的索引写入此参数,如果未找到任何显示的选项卡,则写入 -1。

返回值

如果成功,则为指向第一个显示的选项卡的指针;否则为 NULL。

CBaseTabbedPane::GetMinSize

检索窗格的最小允许大小。

virtual void GetMinSize(CSize& size) const;

参数

size
[out] 一个用最小允许大小填充的 CSize 对象。

注解

如果对最小窗格大小的一致处理是活动的 (CPane::m_bHandleMinSize),“大小”字段将用活动选项卡的最小允许大小填充。否则,“大小”由 CPane::GetMinSize 的返回值填充

CBaseTabbedPane::GetPaneIcon

检索窗格的最小允许大小。

virtual void GetMinSize(CSize& size) const;

参数

size
[out] 一个用最小允许大小填充的 CSize 对象。

注解

如果对最小窗格大小的一致处理是活动的 (CPane::m_bHandleMinSize),“大小”字段将用活动选项卡的最小允许大小填充。否则,“大小”由 CPane::GetMinSize 的返回值填充

CBaseTabbedPane::GetPaneList

返回选项卡式窗格中包含的窗格列表。

virtual void GetPaneList(
    CObList& lst,
    CRuntimeClass* pRTCFilter = NULL);

参数

lst
[out] 由选项卡式窗格中包含的窗格填充的 CObList

pRTCFilter
[in] 如果不是 NULL,则返回的列表仅包含指定运行时类的窗格。

CBaseTabbedPane::GetTabArea

返回顶部和底部选项卡区域的范围框。

virtual void GetTabArea(
    CRect& rectTabAreaTop,
    CRect& rectTabAreaBottom) const = 0;

参数

rectTabAreaTop
[out] 接收上部选项卡区域的屏幕坐标。

rectTabAreaBottom
[out] 接收下部选项卡区域的屏幕坐标。

注解

调用此方法可用屏幕坐标确定上部和下部选项卡区域的范围框。

CBaseTabbedPane::GetTabsNum

返回选项卡窗口中选项卡的计数。

virtual int GetTabsNum() const;

返回值

选项卡式窗格中选项卡的数目。

CBaseTabbedPane::GetUnderlyingWindow

获取基础(已包装)选项卡窗口。

virtual CMFCBaseTabCtrl* GetUnderlyingWindow();

返回值

指向基础选项卡窗口的指针。

CBaseTabbedPane::GetVisibleTabsNum

返回可见选项卡的计数。

virtual int GetVisibleTabsNum() const;

返回值

可见选项卡的数目,将大于或等于 0。

备注

调用此方法可确定选项卡式窗格中可见选项卡的数目。

CBaseTabbedPane::HasAutoHideMode

确定选项卡式窗格是否可以切换为自动隐藏模式。

virtual BOOL HasAutoHideMode() const;

返回值

如果窗格可以切换到自动隐藏模式,则为 TRUE;否则为 FALSE。

备注

如果禁用自动隐藏模式,则选项卡式窗格标题上不显示任何固定按钮。

CBaseTabbedPane::IsHideSingleTab

确定在仅显示一个选项卡时是否隐藏选项卡式窗格。

virtual BOOL IsHideSingleTab() const;

返回值

如果在只有一个可见选项卡时未显示选项卡窗口,则为 TRUE;否则为 FALSE。

注解

如果由于只有一个选项卡打开而未显示窗格,则可以调用此方法来确定选项卡式窗格是否正常工作。

CBaseTabbedPane::RemovePane

从选项卡式窗格中删除窗格。

virtual BOOL RemovePane(CWnd* pBar);

参数

pBar
[in, out] 指向要从选项卡式窗格中删除的窗格的指针。

返回值

如果窗格已成功从选项卡式窗格中删除,并且选项卡式窗格仍然有效,则为 TRUE。 如果已从选项卡式窗格中删除最后一个窗格,并且选项卡式窗格即将被销毁,则为 FALSE。 如果返回值为 FALSE,请不要再使用选项卡式窗格。

备注

调用此方法可从选项卡式窗格中删除由 pBar 参数指定的窗格

CBaseTabbedPane::SetAutoDestroy

确定是否自动销毁选项卡控件条。

void SetAutoDestroy(BOOL bAutoDestroy = TRUE);

参数

bAutoDestroy
[in] 如果选项卡式窗格是动态创建的,并且你未控制其生存期,则为 TRUE;否则为 FALSE。

备注

如果动态创建选项卡式窗格且未控制其生存期,请将自动销毁模式设置为 TRUE。 如果自动销毁模式为 TRUE,则框架会自动销毁选项卡式窗格。

CBaseTabbedPane::ShowTab

显示或隐藏选项卡。

virtual BOOL ShowTab(
    CWnd* pBar,
    BOOL bShow,
    BOOL bDelay,
    BOOL bActivate);

参数

pBar
[in] 指向要显示或隐藏的窗格的指针。

bShow
[in] TRUE 表示显示窗格;FALSE 表示隐藏窗格。

bDelay
[in] 如果要延迟选项卡布局的调整,则为 TRUE;否则为 FALSE。

bActivate
[in] 要使选项卡成为活动选项卡,则为 TRUE;否则为 FALSE。

返回值

如果选项卡成功显示或隐藏,则为 TRUE;否则为 FALSE。

注解

调用此方法时,将显示或隐藏窗格,具体取决于 bShow 参数的值。 如果隐藏选项卡,并且它是基础选项卡窗口中最后一个可见的选项卡,则会隐藏选项卡式窗格。 如果在以前没有选项卡可见时显示选项卡,则会显示选项卡式窗格。

CBaseTabbedPane::RecalcLayout

重新计算窗格的布局信息。

virtual void RecalcLayout();

备注

如果窗格是浮动的,此方法通知框架将窗格的大小调整为微型框架的当前大小。

如果窗格已停靠,则此方法不执行任何操作。

CBaseTabbedPane::SetAutoHideMode

为选项卡式窗格中的可拆离窗格设置自动隐藏模式。

virtual CMFCAutoHideToolBar* SetAutoHideMode(
    BOOL bMode,
    DWORD dwAlignment,
    CMFCAutoHideToolBar* pCurrAutoHideBar = NULL,
    BOOL bUseTimer = TRUE);

参数

bMode
[in] TRUE 表示启用自动隐藏模式;FALSE 表示启用常规停靠模式。

dwAlignment
[in] 指定要创建的自动隐藏窗格的对齐方式。 有关可能的值列表,请参阅

pCurrAutoHideBar
[in, out] 指向当前自动隐藏工具栏的指针。 可以为 NULL。

bUseTimer
[in] 指定当用户将窗格切换到自动隐藏模式时是使用自动隐藏效果,还是立即隐藏窗格。

返回值

指向切换到自动隐藏模式时创建的自动隐藏工具栏的指针,如果未创建任何工具栏,则为 NULL。

注解

当用户选择固定按钮以将选项卡式窗格切换到自动隐藏模式或常规停靠模式时,框架将调用此方法。

为选项卡式窗格中的每个可拆离窗格设置自动隐藏模式。 忽略不可拆离的窗格。 有关详细信息,请参阅 CMFCBaseTabCtrl::EnableTabDetach

调用此方法可将选项卡式窗格以编程方式切换为自动隐藏模式。 窗格必须停靠到主框架窗口(CDockablePane::GetDefaultPaneDivider 必须返回指向 CPaneDivider 的有效指针)。

另请参阅

层次结构图

CDockablePane 类