CTabCtrl Class

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

提供 Windows 通用索引標籤控制項的功能。

class CTabCtrl : public CWnd  

公用建構函式

名稱說明
CTabCtrl::CTabCtrl建構 CTabCtrl 物件。

公用方法

名稱說明
CTabCtrl::AdjustRect計算索引標籤控制項的顯示區域,指定視窗矩形,或計算就會對應至指定的顯示區視窗矩形。
CTabCtrl::Create建立索引標籤控制項,並將其附加至執行個體的CTabCtrl物件。
CTabCtrl::CreateEx建立具有指定的 Windows 延伸樣式] 索引標籤控制項,並將其附加至執行個體的CTabCtrl物件。
CTabCtrl::DeleteAllItems從索引標籤控制項移除所有項目。
CTabCtrl::DeleteItem移除索引標籤控制項中的項目。
CTabCtrl::DeselectAll重設在索引標籤控制項中,清除任何已按下的項目。
CTabCtrl::DrawItem繪製指定的項目索引標籤控制項。
CTabCtrl::GetCurFocus擷取具有目前焦點所在的索引標籤控制項的索引標籤。
CTabCtrl::GetCurSel決定索引標籤控制項中目前選取的索引標籤。
CTabCtrl::GetExtendedStyle擷取目前正在使用的索引標籤控制項中的延伸的樣式。
CTabCtrl::GetImageList擷取與索引標籤控制項關聯的映像清單。
CTabCtrl::GetItem擷取索引標籤控制項中的索引標籤的相關資訊。
CTabCtrl::GetItemCount擷取索引標籤控制項中的索引標籤的數目。
CTabCtrl::GetItemRect擷取索引標籤控制項中的索引標籤,這個周框。
CTabCtrl::GetItemState擷取指定的索引標籤控制項項目的狀態。
CTabCtrl::GetRowCount擷取目前的索引標籤控制項中的索引標籤的資料列數。
CTabCtrl::GetToolTips擷取與索引標籤控制項相關聯的工具提示控制項的控制代碼。
CTabCtrl::HighlightItem設定索引標籤項目反白顯示狀態。
CTabCtrl::HitTest判斷哪一個索引標籤上,如果有的話,是在指定的螢幕位置。
Ctabctrl:: Insertitem索引標籤控制項中插入新的索引標籤。
CTabCtrl::RemoveImage索引標籤控制項影像清單中移除映像。
CTabCtrl::SetCurFocus將焦點設在索引標籤控制項中指定的索引標籤。
CTabCtrl::SetCurSel索引標籤控制項中選取索引標籤。
CTabCtrl::SetExtendedStyle設定索引標籤控制項的延伸的樣式。
CTabCtrl::SetImageList指派索引標籤控制項影像清單。
CTabCtrl::SetItem設定部分或全部的索引標籤的屬性。
CTabCtrl::SetItemExtra設定每個索引標籤上的索引標籤控制項中的應用程式定義的資料保留的位元組數目。
CTabCtrl::SetItemSize設定寬度和高度的項目。
CTabCtrl::SetItemState設定指定的索引標籤控制項項目的狀態。
CTabCtrl::SetMinTabWidth設定索引標籤控制項中的最小寬度的項目。
CTabCtrl::SetPadding設定 (填補) 每個索引標籤的圖示和標籤控制項中的標籤周圍的空間數量。
CTabCtrl::SetToolTips會指定工具提示控制項索引標籤控制項。

「 索引標籤控制項 」 很類似檔案櫃中的或檔案櫃中的標籤。 藉由使用索引標籤控制項,應用程式可以定義視窗或對話方塊中同一個區域的多個頁面。 每個頁面所組成的一組資訊或一群應用程式會顯示當使用者選取 [對應] 索引標籤的控制項。 一種特殊類型的索引標籤控制項中顯示看起來像按鈕的索引標籤。 按下按鈕應該立即執行而不是顯示在頁面的命令。

這個控制項 (並因此CTabCtrl類別) 僅適用於執行 Windows 95/98 和 Windows NT 版本 3.51 下的程式和更新版本。

如需有關使用CTabCtrl,請參閱控制項使用 CTabCtrl

CObject

CCmdTarget

CWnd

CTabCtrl

標頭: afxcmn.h

計算索引標籤控制項的顯示區域,指定視窗矩形,或計算就會對應至指定的顯示區視窗矩形。

void AdjustRect(BOOL bLarger,   LPRECT lpRect);

參數

bLarger
表示要執行哪些作業。 如果這個參數是TRUElpRect指定的顯示矩形,並接收對應視窗矩形。 如果這個參數是FALSElpRect指定視窗矩形,並接收對應的顯示矩形。

lpRect
指標RECT結構,指定指定的矩形或接收的導出的矩形。

範例

void CTabDlg::OnSize(UINT nType, int cx, int cy)
{
   CDialog::OnSize(nType, cx, cy);

   if(m_TabCtrl.m_hWnd == NULL)
      return;      // Return if window is not created yet.
   
   RECT rect;

   // Get size of dialog window.
   GetClientRect(&rect);
   
   // Adjust the rectangle to fit the tab control into the 
   // dialog's client rectangle.
   m_TabCtrl.AdjustRect(FALSE, &rect);

   // Move the tab control to the new position and size.
   m_TabCtrl.MoveWindow(&rect, TRUE);   
}

建立索引標籤控制項,並將其附加至執行個體的CTabCtrl物件。

virtual BOOL Create(
    DWORD dwStyle,  
    const RECT& rect,  
    CWnd* pParentWnd,  
    UINT nID);

參數

dwStyle
指定索引標籤控制項的樣式。 套用的任何結合索引標籤控制項樣式中所述Windows SDK。 請參閱備註您也可以套用至控制項的視窗樣式的清單。

rect
指定索引標籤控制項的大小和位置。 它可以是CRect物件或RECT結構。

pParentWnd
指定索引標籤控制項的父視窗,通常CDialog。 它不得為NULL

nID
指定索引標籤控制項的 id。

傳回值

TRUE物件的初始化是否成功,否則FALSE

備註

您建構CTabCtrl兩個步驟中的物件。 首先,呼叫建構函式,並接著呼叫建立,這會建立索引標籤控制項,並將其以附加CTabCtrl物件。

除了索引標籤控制項的樣式,您可以套用下列視窗樣式標籤控制項︰

  • WS_CHILD建立代表索引標籤控制項的子視窗。 不能與WS_POPUP樣式。

  • WS_VISIBLE會建立一開始即可見的索引標籤控制項。

  • WS_DISABLED建立視窗一開始是停用。

  • WS_GROUP指定一組控制項中的使用者可以移動控制項至下一個使用方向鍵的第一個控制項。 所有控制項,以定義WS_GROUP樣式之後的第一個控制項屬於相同的群組。 下一個控制項與WS_GROUP樣式結束樣式的群組,並啟動下一個群組 (也就是一個群組結尾開始下)。

  • WS_TABSTOP的控制項,讓使用者可以使用 TAB 鍵移動指定任意數目。 TAB 鍵移至所指定的下一個控制項的使用者WS_TABSTOP樣式。

若要建立具有延伸的視窗樣式] 索引標籤控制項,呼叫CTabCtrl::CreateEx而不是建立

範例

   // Assuming you have a member variable m_TabCtrl, that is a CTabCtrl
   // object, you can use the following to create a tab control.

   m_TabCtrl.Create(TCS_TABS | TCS_FIXEDWIDTH | WS_CHILD | WS_VISIBLE,
      rect, this, IDC_MYTAB);

   // This creates a tab control with the given styles, and with
   // an ID of IDC_MYTAB.

建立控制項 (子視窗),並將它與相關聯CTabCtrl物件。

virtual BOOL CreateEx(
    DWORD dwExStyle,  
    DWORD dwStyle,  
    const RECT& rect,  
    CWnd* pParentWnd,  
    UINT nID);

參數

dwExStyle
指定正在建立的控制項的延伸的樣式。 如需延伸視窗樣式,請參閱dwExStyle參數CreateWindowEx中Windows SDK。

dwStyle
指定索引標籤控制項的樣式。 套用的任何結合索引標籤控制項樣式中所述Windows SDK。 請參閱備註建立您也可以套用至控制項的視窗樣式的清單。

rect
參考RECT結構描述的大小和位置來建立、 用戶端座標中的視窗的pParentWnd

pParentWnd
是控制項的父視窗的指標。

nID
控制項的子視窗的 id。

傳回值

如果成功的話,非零值為 0。

備註

使用CreateEx而不是建立套用延伸的視窗樣式,指定 Windows 延伸的樣式序言WS_EX_

CreateEx建立具有所指定的延伸視窗樣式控制項dwExStyle。 設定擴充特定控制項使用的樣式SetExtendedStyle。 例如,使用CreateEx設為這類樣式WS_EX_CONTEXTHELP,但使用SetExtendedStyle設為這類樣式TCS_EX_FLATSEPARATORS。 如需詳細資訊,請參閱說明中的樣式[] 索引標籤控制項擴充樣式](http://msdn.microsoft.com/library/windows/desktop/bb760546)中Windows SDK。

建構 CTabCtrl 物件。

CTabCtrl();

從索引標籤控制項移除所有項目。

BOOL DeleteAllItems();

傳回值

如果成功則為非零;否則為 0。

從索引標籤控制項移除指定的項目。

BOOL DeleteItem(int nItem);

參數

nItem
若要刪除的項目以零為起始的值。

傳回值

如果成功則為非零;否則為 0。

範例

// This example assumes that there is a CTabCtrl member of the
// CTabDlg class named m_TabCtrl.  On a button handler
// called OnDeleteItem of the dialog box the tab control will
// delete the 0 indexed item.

void CTabDlg::OnDeleteItem()
{
   // Delete the first item in the tab control.
   m_TabCtrl.DeleteItem(0);   
}

重設在索引標籤控制項中,清除任何已按下的項目。

void DeselectAll(BOOL fExcludeFocus);

參數

fExcludeFocus
指定的項目取消選取範圍的旗標。 如果此參數設為FALSE,所有的索引標籤按鈕將會重設。 如果設定為TRUE,則除了目前選取的所有索引標籤項目將會重設。

備註

此成員函式實作的行為的 Win32 訊息, TCM_DESELECTALL所述,在Windows SDK。

當主控描繪索引標籤控制項變更的視覺外觀的架構所呼叫。

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

參數

lpDrawItemStruct
指標DRAWITEMSTRUCT結構,描述要繪製的項目。

備註

ItemAction成員DRAWITEMSTRUCT結構會定義要執行的繪圖動作。

根據預設,此成員函式沒有作用。 覆寫此成員函式實作繪圖的主控描繪CTabCtrl物件。

應用程式應該還原選取的顯示內容中提供所有的圖形裝置介面 (GDI) 物件lpDrawItemStruct之前此成員函式會結束。

擷取具有目前焦點所在的索引標籤的索引。

int GetCurFocus() const;  

傳回值

具有目前焦點所在的索引標籤以零為起始的索引。

擷取索引標籤控制項中目前選取的索引標籤。

int GetCurSel() const;  

傳回值

選取的索引標籤,如果成功或-1,表示已不選取任何索引標籤的以零為起始的索引。

擷取目前正在使用的索引標籤控制項中的延伸的樣式。

DWORD GetExtendedStyle();

傳回值

表示目前的索引標籤控制項的使用中的延伸的樣式。 這個值會結合擴充樣式的控制項索引標籤上所述,在Windows SDK。

備註

此成員函式實作的 Win32 訊息的行為TCM_GETEXTENDEDSTYLE所述,在Windows SDK。

擷取與索引標籤控制項關聯的影像清單。

CImageList* GetImageList() const;  

傳回值

如果成功,控制項影像清單索引標籤的指標,否則, NULL

擷取索引標籤控制項中的索引標籤的相關資訊。

BOOL GetItem(int nItem,   TCITEM* pTabCtrlItem) const;  

參數

nItem
索引標籤的以零為起始的索引。

pTabCtrlItem
指標TCITEM用來指定要擷取之資訊的結構。 也用來接收索引標籤的詳細資訊。 此結構用於搭配InsertItemGetItem,和SetItem成員函式。

傳回值

傳回TRUE如果登錄成功。FALSE否則。

備註

當傳送訊息時,遮罩成員會指定要傳回屬性。 如果遮罩成員指定TCIF_TEXTpszText成員必須包含接收項目文字的緩衝區的位址和cchTextMax成員必須指定緩衝區的大小。

遮罩
值,指定其TCITEM結構擷取或設定成員。 這個成員可以是零個或以下值的組合︰

  • TCIF_TEXTPszText成員是否有效。

  • TCIF_IMAGE``iImage成員是否有效。

  • TCIF_PARAMLParam成員是否有效。

  • TCIF_RTLREADING文字的pszText希伯來文或阿拉伯文系統上使用由右至左讀取順序顯示。

  • TCIF_STATEDwState成員是否有效。

pszText
以 null 終止的字串,包含在索引標籤文字,如果結構包含一個索引標籤的相關資訊的指標。 如果結構接收資訊,這個成員會指定接收在索引標籤文字的緩衝區的位址。

cchTextMax
所指向的緩衝區大小pszText。 如果結構不能接收資訊,則會忽略這個成員。

iImage
如果沒有影像的索引在索引標籤控制項影像清單,或-1 的索引。

lParam
[] 索引標籤相關聯的應用程式定義的資料。 如果有四個位元組以上的應用程式定義的資料,每個索引標籤上,應用程式必須定義的結構,並使用,而不是TCITEM結構。 應用程式定義的結構中的第一個成員必須是TCITEMHEADER結構。 TCITEMHEADER結構等同於TCITEM結構,但不含lParam成員。 您的結構大小和大小之間的差異TCITEMHEADER結構應該等於每個索引標籤的額外位元組數目。

範例

// In this example a CTabCtrl data member, m_TabCtrl, changes the
// text of the tabs in the tab control.  A call to GetItem is used
// to get the current text, and then the text is changed.  A call 
// to SetItem is used to update the tab with the new text.

void CTabDlg::OnChangeItem()
{
   TCITEM tcItem;
   CString pszString;

   //  Get text for the tab item.
   GetDlgItemText(IDC_ITEM_TEXT, pszString);
   
   //  Get the current tab item text.
   TCHAR buffer[256] = {0};
   tcItem.pszText = buffer;
   tcItem.cchTextMax = 256;
   tcItem.mask = TCIF_TEXT;
   m_TabCtrl.GetItem(0, &tcItem);
   TRACE(_T("Changing item text from %s to %s..."), tcItem.pszText, pszString);
   
   //  Set the new text for the item.
   tcItem.pszText = pszString.LockBuffer();

   //  Set the item in the tab control.
   m_TabCtrl.SetItem(0, &tcItem);

   pszString.UnlockBuffer();
}

擷取索引標籤控制項中的索引標籤的數目。

int GetItemCount() const;  

傳回值

索引標籤控制項中的項目數目。

範例

請參閱範例CPropertySheet::GetTabControl

擷取指定的索引標籤索引標籤控制項中的週框。

BOOL GetItemRect(int nItem,   LPRECT lpRect) const;  

參數

nItem
以零為起始的索引標籤項目索引。

lpRect
指標RECT結構會接收索引標籤的周框矩形。 這些座標會使用目前的對應模式在檢視區。

傳回值

如果成功則為非零;否則為 0。

範例

請參閱範例CPropertySheet::GetTabControl

擷取所識別的索引標籤控制項項目的狀態nItem

DWORD GetItemState(
    int nItem,  
    DWORD dwMask) const;  

參數

nItem
要擷取狀態資訊項目的以零為起始的索引編號。

dwMask
指定要傳回哪一個項目的狀態旗標的遮罩。 值的清單,請參閱的遮罩成員TCITEM結構中所述Windows SDK。

傳回值

參考DWORD接收狀態資訊的值。 可為下列其中一個值:

說明
TCIS_BUTTONPRESSED選取索引標籤控制項項目。
TCIS_HIGHLIGHTED索引標籤控制項項目會反白顯示,並在索引標籤和文字畫使用目前的醒目提示色彩。 當使用醒目提示色彩,這會是 true 的插補,非遞色色彩。

備註

所指定項目的狀態dwState成員TCITEM結構。

擷取目前的索引標籤控制項中的資料列數。

int GetRowCount() const;  

傳回值

索引標籤控制項中的索引標籤的資料列數目。

備註

只有索引標籤控制項具有TCS_MULTILINE樣式可以有多個資料列的索引標籤。

擷取與索引標籤控制項相關聯的工具提示控制項的控制代碼。

CToolTipCtrl* GetToolTips() const;  

傳回值

如果成功,工具提示控制項的控制代碼否則NULL

備註

索引標籤控制項建立工具提示控制項,如果有TCS_TOOLTIPS樣式。 您也可以指派至索引標籤控制項的工具提示控制項,使用SetToolTips成員函式。

設定索引標籤項目反白顯示狀態。

BOOL HighlightItem(int idItem,   BOOL fHighlight = TRUE);

參數

idItem
索引標籤控制項項目的以零為起始的索引。

fHighlight
值,指定要設定的反白顯示狀態。 如果這個值是TRUE,[] 索引標籤會反白顯示; 如果FALSE,[] 索引標籤設為其預設狀態。

傳回值

如果成功則不為零,否則為&0;。

備註

此成員函式實作的 Win32 訊息TCM_HIGHLIGHTITEM所述,在Windows SDK。

判斷哪一個索引標籤上,如果有的話,是在指定的螢幕位置。

int HitTest(TCHITTESTINFO* pHitTestInfo) const;  

參數

pHitTestInfo
指標TCHITTESTINFO結構中所述Windows SDK,它會指定要測試的螢幕位置。

傳回值

如果沒有索引標籤的指定位置,傳回以零起始的索引] 索引標籤或-1。

現有的索引標籤控制項中插入新的索引標籤。

LONG InsertItem(
    int nItem,
    TCITEM* pTabCtrlItem);

 
LONG InsertItem(
    int nItem,
    LPCTSTR lpszItem);

 
LONG InsertItem(
    int nItem,
    LPCTSTR lpszItem,
    int nImage);

 
LONG InsertItem(
    UINT nMask,
    int nItem,
    LPCTSTR lpszItem,
    int nImage,
    LPARAM lParam);

 
LONG InsertItem(
    UINT nMask,  
    int nItem,  
    LPCTSTR lpszItem,  
    int nImage,  
    LPARAM lParam,  
    DWORD dwState,  
    DWORD dwStateMask);

參數

nItem
新的索引標籤的以零為起始的索引。

pTabCtrlItem
指標TCITEM結構,指定索引標籤的屬性。

lpszItem
包含文字] 索引標籤的 null 結尾字串的位址。

nImage
插入影像清單中之影像的以零為起始的索引。

nMask
指定哪一個TCITEM結構要設定的屬性。 可以是零個或以下值的組合︰

  • TCIF_TEXTPszText成員是否有效。

  • TCIF_IMAGE``iImage成員是否有效。

  • TCIF_PARAMLParam成員是否有效。

  • TCIF_RTLREADING文字的pszText希伯來文或阿拉伯文系統上使用由右至左讀取順序顯示。

  • TCIF_STATEDwState成員是否有效。

lParam
[] 索引標籤相關聯的應用程式定義的資料。

dwState
指定的項目狀態的值。 如需詳細資訊,請參閱TCITEM中Windows SDK。

dwStateMask
指定要設定哪些狀態。 如需詳細資訊,請參閱TCITEM中Windows SDK。

傳回值

如果成功,新索引標籤的以零起始的索引否則為-1。

範例

   TCITEM tcItem;
   tcItem.mask = TCIF_TEXT;
   tcItem.pszText = _T("Tab #1");

   m_TabCtrl.InsertItem(0, &tcItem);

索引標籤控制項影像清單中移除指定的映像。

void RemoveImage(int nImage);

參數

nImage
要移除之影像的以零為起始索引。

備註

索引標籤控制項更新每個索引標籤的影像索引,好讓每個索引標籤會保持相同的映像相關聯。

將焦點設在索引標籤控制項中指定的索引標籤。

void SetCurFocus(int nItem);

參數

nItem
指定的索引標籤,取得焦點的索引。

備註

此成員函式實作的 Win32 訊息的行為TCM_SETCURFOCUS所述,在Windows SDK。

索引標籤控制項中選取索引標籤。

int SetCurSel(int nItem);

參數

nItem
選取項目以零為起始的索引。

傳回值

以零為起始的索引,先前選取的索引標籤,如果成功,否則為-1。

備註

索引標籤控制項不會傳送TCN_SELCHANGINGTCN_SELCHANGE通知訊息時使用這個函式來選取索引標籤。 這些通知會傳送使用WM_NOTIFY,當使用者按一下,或使用鍵盤來變更索引標籤。

設定索引標籤控制項的延伸的樣式。

DWORD SetExtendedStyle(DWORD dwNewStyle,   DWORD dwExMask = 0);

參數

dwNewStyle
值,指定的索引標籤組合來控制延伸的樣式。

dwExMask
ADWORD值,指出在哪些樣式dwNewStyle會受到影響。 只有在延伸的樣式dwExMask將會變更。 因為將保留所有其他樣式。 如果此參數為零,則所有在樣式dwNewStyle會受到影響。

傳回值

ADWORD值,其中包含先前擴充樣式的控制項索引標籤上所述,在Windows SDK。

傳回值

此成員函式實作的 Win32 訊息的行為TCM_SETEXTENDEDSTYLE所述,在Windows SDK。

指派索引標籤控制項影像清單。

CImageList* SetImageList(CImageList* pImageList);

參數

pImageList
若要指派給] 索引標籤控制項影像清單的指標。

傳回值

傳回前一個影像清單的指標或NULL如果沒有上一個映像清單。

設定部分或全部的索引標籤的屬性。

BOOL SetItem(int nItem,   TCITEM* pTabCtrlItem);

參數

nItem
項目的以零為起始的索引。

pTabCtrlItem
指標TCITEM結構,其中包含新的項目屬性。 遮罩成員指定要設定屬性。 如果遮罩成員指定TCIF_TEXTpszText成員是以 null 終止字串的位址和cchTextMax成員會被忽略。

傳回值

如果成功則為非零;否則為 0。

範例

請參閱範例GetItem

設定每個索引標籤上的索引標籤控制項中的應用程式定義的資料保留的位元組數目。

BOOL SetItemExtra(int nBytes);

參數

nBytes
若要設定額外的位元組數目。

傳回值

如果成功則不為零,否則為&0;。

備註

此成員函式實作的 Win32 訊息的行為TCM_SETITEMEXTRA所述,在Windows SDK。

設定索引標籤控制項項目的寬度和高度。

CSize SetItemSize(CSize size);

參數

size
索引標籤控制項項目的新寬度和高度 (以像素為單位)。

傳回值

傳回索引標籤控制項項目的舊寬度和高度。

設定控制項索引標籤的項目已由狀態nItem

BOOL SetItemState(
    int nItem,
    DWORD dwMask,
    DWORD dwState);

參數

nItem
若要設定的狀態資訊的項目以零為起始的索引編號。

dwMask
指定哪一個項目的狀態設定旗標的遮罩。 值的清單,請參閱的遮罩成員TCITEM結構中所述Windows SDK。

dwState
參考DWORD值,其中包含的狀態資訊。 可為下列其中一個值:

說明
TCIS_BUTTONPRESSED選取索引標籤控制項項目。
TCIS_HIGHLIGHTED索引標籤控制項項目會反白顯示,並在索引標籤和文字畫使用目前的醒目提示色彩。 當使用醒目提示色彩,這會是 true 的插補,非遞色色彩。

傳回值

如果成功則為非零;否則為 0。

設定索引標籤控制項中的最小寬度的項目。

int SetMinTabWidth(int cx);

參數

cx
索引標籤控制項項目設定的最小寬度。 如果此參數設定為-1 時,控制項就會使用預設索引標籤寬度。

傳回值

先前的最小值] 索引標籤寬度。

傳回值

此成員函式實作的 Win32 訊息的行為TCM_SETMINTABWIDTH所述,在Windows SDK。

設定 (填補) 每個索引標籤的圖示和標籤控制項中的標籤周圍的空間數量。

void SetPadding(CSize size);

參數

size
設定 (填補) 每個索引標籤的圖示和標籤控制項中的標籤周圍的空間數量。

會指定工具提示控制項索引標籤控制項。

void SetToolTips(CToolTipCtrl* pWndTip);

參數

pWndTip
工具提示控制項的控制代碼。

備註

你可以藉由呼叫相關聯的索引標籤控制項的工具提示控制項GetToolTips

範例

請參閱範例CPropertySheet::GetTabControl

CWnd 類別
階層架構圖表
CHeaderCtrl 類別
CListCtrl 類別

顯示: