Share via


创建选项卡控件

选项卡控件的创建方式取决于将在对话框中使用此控件,还是将在非对话框窗口中创建此控件。

直接在对话框中使用 CTabCtrl

  1. 在对话框编辑器中,将选项卡控件添加到对话框模板资源。 指定其控件 ID。

  2. 使用添加成员变量向导通过 Control 属性添加 CTabCtrl 类型的成员变量。 您可以使用此成员调用 CTabCtrl 成员函数。

  3. 对话框类中的映射处理函数,用于需要处理的任何选项卡控件通知消息。 有关详细信息,请参阅将消息映射到函数

  4. OnInitDialog 中,设置 CTabCtrl 的样式。

在非对话框窗口中使用 CTabCtrl

  1. 在视图或窗口类中定义控件。

  2. 调用控件的 Create 成员函数,这有可能在 OnInitialUpdate 中进行,最早还可能在父窗口的 OnCreate 处理程序函数中进行(如果你要将控件子类化)。 设置控件的样式。

创建 CTabCtrl 对象后,可以设置或清除以下扩展样式:

  • TCS_EX_FLATSEPARATORS 选项卡控件将在选项卡项之间绘制分隔符。 此扩展样式仅影响具有 TCS_BUTTONS 和 TCS_FLATBUTTONS 样式的选项卡控件。 默认情况下,使用 TCS_FLATBUTTONS 样式创建选项卡控件会设置此扩展样式

  • TCS_EX_REGISTERDROP 选项卡控件在对象被拖动到控件中的选项卡项上时,生成 TCN_GETOBJECT 通知消息以请求放置目标对象

    注意

    若要接收 TCN_GETOBJECT 通知,必须调用 AfxOleInit 来初始化 OLE 库

可以在创建控件后检索和设置这些样式,并分别调用 GetExtendedStyleSetExtendedStyle 成员函数。

例如,使用以下代码行设置 TCS_EX_FLATSEPARATORS 样式

DWORD dwExStyle = m_TabCtrl.GetExtendedStyle();
m_TabCtrl.SetExtendedStyle(dwExStyle | TCS_EX_FLATSEPARATORS);

使用以下代码从 CTabCtrl 对象中清除 TCS_EX_FLATSEPARATORS 样式

DWORD dwExStyle = m_TabCtrl.GetExtendedStyle();
m_TabCtrl.SetExtendedStyle(dwExStyle & ~TCS_EX_FLATSEPARATORS);

这将删除 CTabCtrl 对象按钮之间出现的分隔符。

另请参阅

使用 CTabCtrl
Controls