CTabbedPane 类
利用可拆分的选项卡实现窗格的功能。
有关详细信息,请参阅所安装的 Visual Studio 的 VC\atlmfc\src\mfc 文件夹中的源代码。
语法
class CTabbedPane : public CBaseTabbedPane
成员
公共构造函数
名称 | 描述 |
---|---|
CTabbedPane::CTabbedPane |
默认构造函数。 |
公共方法
名称 | 描述 |
---|---|
CTabbedPane::DetachPane | (替代 CBaseTabbedPane::DetachPane。) |
CTabbedPane::EnableTabAutoColor | 启用或禁用自动选项卡着色。 |
CTabbedPane::FloatTab | 仅当窗格中当前驻留在拆离的选项卡中时浮动窗格。(替代 CBaseTabbedPane::FloatTab。) |
CTabbedPane::GetTabArea | 返回选项卡区域在选项卡式窗口中的大小和位置。 |
CTabbedPane::GetTabWnd | |
CTabbedPane::HasAutoHideMode | 确定选项卡式窗格是否可以切换为自动隐藏模式。 (替代 CBaseTabbedPane::HasAutoHideMode。) |
CTabbedPane::IsTabLocationBottom | 确定选项卡是否位于窗口的底部。 |
CTabbedPane::ResetTabs | 将所有选项卡式窗格重置为默认状态。 |
CTabbedPane::SetTabAutoColors | 设置可以在自动颜色功能启用时可用的自定义颜色列表。 |
数据成员
名称 | 描述 |
---|---|
CTabbedPane::m_bTabsAlwaysTop | 选项卡在应用程序中的的默认位置。 |
CTabbedPane::m_pTabWndRTC | 自定义 CMFCTabCtrl -派生对象的运行时类信息。 |
注解
当用户通过将一个窗格指向第二个窗格的标题的方式来附加到另一个窗格,框架自动创建此类的实例。 由框架创建的所有选项卡式窗格都具有值为 -1 的 ID。
要指定常规选项卡而不是 Outlook 样式选项卡,请将 AFX_CBRS_REGULAR_TABS 样式传递给 CDockablePane::CreateEx 方法。
如果你使用可拆离的选项卡创建一个选项卡式窗格,该窗格可能会被框架自动销毁,因此,你不应该存储该指针。 若要获取对选项卡式窗格的指针,请调用 CBasePane::GetParentTabbedPane
方法。
示例
我们在此示例中创建了一个 CTabbedPane
对象。 接着,我们使用 CBaseTabbedPane::AddTab 来附加其他选项卡。
CTabbedPane* pTabbededBar = new CTabbedPane (TRUE);
if (!pTabbededBar->Create (_T(""),
this,
CRect (0,
0,
200,
200),
TRUE,
(UINT) -1,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | CBRS_LEFT |
CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create Solution Explorer bar\n");
return FALSE; // fail to create
}
pTabbededBar->AddTab (&m_wndClassView);
pTabbededBar->AddTab (&m_wndResourceView);
pTabbededBar->AddTab (&m_wndFileView);
pTabbededBar->EnableDocking(CBRS_ALIGN_ANY);
DockPane(pTabbededBar);
另一种创建选项卡式控制条对象的方法是使用 CDockablePane::AttachToTabWnd。 AttachToTabWnd
方法使用由 CDockablePane::SetTabbedPaneRTC 设置的运行时类信息动态创建一个选项卡式窗格对象。
在此示例中,我们动态地创建了一个选项卡式窗格,附加这两个选项卡,并使第二个选项不可拆离。
DockPane(&m_wndClassView);
CTabbedPane* pTabbedBar = NULL;
m_wndResourceView.AttachToTabWnd (&m_wndClassView,
DM_SHOW,
TRUE,
(CDockablePane**) &pTabbedBar);
m_wndFileView.AttachToTabWnd (pTabbedBar,
DM_SHOW,
TRUE,
(CDockablePane**) &pTabbedBar);
pTabbedBar->GetUnderlyingWindow ()->EnableTabDetach (1,
FALSE);
继承层次结构
要求
标头:afxTabbedPane.h
CTabbedPane::DetachPane
virtual BOOL DetachPane(
CWnd* pBar,
BOOL bHide = FALSE);
参数
[in] pBar
[in] bHide
返回值
注解
CTabbedPane::EnableTabAutoColor
启用或禁用自动选项卡着色。
static void EnableTabAutoColor(BOOL bEnable = TRUE);
参数
bEnable
[in] 如果启用选项卡的自动着色,则为 TRUE;否则为 FALSE。
注解
使用此静态方法来启用或禁用应用程序中所有选项卡式窗格中选项卡的自动着色。 启用此功能后,每个选项卡都由自身的颜色填充。 可以通过调用 CMFCTabCtrl::GetAuto Colors 方法找到用于为选项卡着色的颜色列表。
可以通过调用 CTabbedPane::SetTabAutoColors 指定将用于选项卡的颜色列表。
默认情况下禁用此选项。
CTabbedPane::FloatTab
virtual BOOL FloatTab(
CWnd* pBar,
int nTabID,
AFX_DOCK_METHOD dockMethod,
BOOL bHide = FALSE);
参数
[in] pBar
[in] nTabID
[in] dockMethod
[in] bHide
返回值
备注
CTabbedPane::GetTabArea
返回选项卡区域在选项卡式窗口中的大小和位置。
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const;
参数
rectTabAreaTop
[out] 包含屏幕坐标中顶部选项卡区域的大小和位置。
rectTabAreaBottom
[out] 包含底部选项卡区域的大小和位置(以屏幕坐标表示)。
备注
框架调用此方法来确定如何停靠用户正在拖动的窗格。 当用户将窗格拖到目标窗格的选项卡区域上时,框架会尝试将其添加为目标窗格的新选项卡。 否则,它会尝试将窗格停靠到目标窗格的一侧,这涉及新建一个窗格容器,其中包含分隔两个窗格的窗格分隔器。
在 CTabbedPane
派生类中替代此方法以更改此行为。
CTabbedPane::GetTabWnd
CMFCTabCtrl* GetTabWnd() const;
返回值
备注
CTabbedPane::HasAutoHideMode
virtual BOOL HasAutoHideMode() const;
返回值
注解
CTabbedPane::IsTabLocationBottom
确定选项卡是否位于窗口的底部。
virtual BOOL IsTabLocationBottom() const;
返回值
如果选项卡区域位于选项卡窗口底部,则为 TRUE;否则为 FALSE。
备注
CTabbedPane::m_bTabsAlwaysTop
选项卡在应用程序中的的默认位置。
AFX_IMPORT_DATA static BOOL m_bTabsAlwaysTop;
备注
将此静态成员设置为 TRUE 可强制应用程序中的所有选项卡显示在选项卡式窗格的顶部。
必须在创建选项卡式窗格之前设置此值。
默认值是 FALSE。
CTabbedPane::m_pTabWndRTC
自定义 CMFCTabCtrl
-派生对象的运行时类信息。
AFX_IMPORT_DATA static CRuntimeClass* m_pTabWndRTC;
注解
如果在选项卡式窗格中使用自定义选项卡式窗口,则将此静态成员变量设置为指向 CMFCTabCtrl
派生对象的运行时类信息的指针。
CTabbedPane::ResetTabs
将所有选项卡式窗格重置为默认状态。
static void ResetTabs();
备注
调用此方法可将所有选项卡式窗格恢复为其默认状态。 调用时,此方法会重置所有选项卡式窗格的边框大小和自动颜色状态。
CTabbedPane::SetTabAutoColors
设置可以在自动颜色功能启用时可用的自定义颜色列表。
static void SetTabAutoColors(const CArray<COLORREF, COLORREF>& arColors);
参数
arColors
[in] 包含要设置的颜色数组。
备注
使用此方法可自定义启用自动颜色功能时使用的颜色列表。 这是一个静态函数,会影响应用程序中的所有选项卡式窗格。
使用 CTabbedPane::EnableTabAutoColor 启用或禁用自动颜色功能。