VS2010-MFC(經常使用控件:標籤控件Tab Control 上)

 

轉自:http://www.jizhuomi.com/software/205.htmlhtml

 

前面兩節講了樹形控件Tree Control,本節開始講解標籤控件Tab Control,也能夠稱爲選項卡控件。函數

 

       標籤控件簡介測試

       標籤控件也比較常見。它能夠把多個頁面集成到一個窗口中,每一個頁面對應一個標籤,用戶點擊某個標籤時,它對應的頁面就會顯示。下圖是Windows系統配置中標籤控件的例子:spa

 

       使用標籤控件咱們能夠同時加載多個有關聯的頁面,用戶只需點擊標籤便可實現頁面切換,方便靈活的進行操做。每一個標籤除了能夠顯示標籤文本,還能夠顯示圖標。code

       標籤控件至關因而一個頁面的容器,能夠容納多個對話框,並且通常也只容納對話框,因此咱們不能直接在標籤控件上添加其餘控件,必須先將其餘控件放到對話框中,再將對話框添加到標籤控件中。最終咱們點擊標籤切換頁面時,切換的不是控件的組合,而是對話框。htm

 

 

       標籤控件的通知消息對象

       在對標籤控件進行一些操做,好比點擊標籤時,標籤控件也會向父窗口發送一些通知消息。咱們能夠爲這些通知消息添加處理函數,實現各類功能。標籤控件的主要通知消息及含義以下所示:blog

       TCN_SELCHANGE:通知父窗口控件的標籤選擇項已經改變
       TCN_SELCHANGING 通知父窗口控件的標籤選擇項正在改變
       TCN_KEYDOWN:通知父窗口在控件範圍內鍵盤被按下
       TCN_GETOBJECT:具備TCS_EX_REGISTERDROP擴展特性而且對象被拖動時的通知消息
       TCN_FOCUSCHANGE:通知父窗口控件的按鈕聚焦已經改變
       NM_CLICK:通知父窗口用戶在控件區域範圍內點擊了鼠標左鍵
       NM_RCLICK:通知父窗口用戶在控件區域範圍內點擊了鼠標右鍵
       NM_RELEASEDCAPTURE:通知父窗口在控件區域範圍內釋放鼠標捕獲消息索引

 

 

       標籤控件的相關結構體字符串

       標籤控件在使用中也有一些相關的結構體常常用到,主要如下幾個:

       1. TCITEMHEADER結構體

       該結構體用來指定或獲取標籤控件自己的屬性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。

C++代碼
typedef struct tagTCITEMHEADER { UINT mask; // 掩碼,能夠爲TCIF_IMAGE(iImage成員有效)、TCIF_RTLREADING、TCIF_TEXT(pszText成員有效)  UINT lpReserved1; // 預留  UINT lpReserved2; // 預留  LPTSTR pszText; // 標籤文本字符串  int cchTextMax; int iImage; // 圖標在標籤控件圖像序列中的索引  } TCITEMHEADER, *LPTCITEMHEADER; 
 
 

       2. TCITEM結構體

       該結構體用來指定或獲取標籤頁的屬性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。

C++代碼
typedef struct tagTCITEM { UINT mask; // 掩碼,能夠是TCIF_IMAGE(iImage成員有效)、TCIF_PARAM(lParam成員有效)、TCIF_RTLREADING、TCIF_STATE、TCIF_TEXT(pszText成員有效)  #if (_WIN32_IE >= 0x0300)  DWORD dwState; DWORD dwStateMask; #else  UINT lpReserved1; UINT lpReserved2; #endif  LPTSTR pszText; int cchTextMax; int iImage; LPARAM lParam; // 與標籤頁關聯的32位數據  } TCITEM, *LPTCITEM; 

 

 

       3. TCHITTESTINFO結構體

       該結構體包含了鼠標單擊測試的信息。

C++代碼
typedef struct tagTCHITTESTINFO { POINT pt; // 鼠標點擊測試的客戶區座標  UINT flags; // 接收點擊測試的結果。有如下幾種:TCHT_NOWHERE(座標點不在標籤上)、TCHT_ONITEM(座標點在標籤上但不在標籤文本或圖標上)、TCHT_ONITEMICON(座標點在標籤圖標上)、TCHT_ONITEMLABEL(座標點在標籤文本上)  } TCHITTESTINFO, *LPTCHITTESTINFO; 

 

 
 

       4. NMTCKEYDOWN結構體

       該結構體包含了標籤控件中鍵盤按下的相關信息。主要用在TCN_KEYDOWN通知消息中。

typedef struct tagNMTCKEYDOWN { NMHDR hdr; WORD wVKey; UINT flags; } NMTCKEYDOWN; 

 

 
 
 

       標籤控件的上半部分就講到這裏了,下節將繼續講解標籤控件的知識和應用實例。

相關文章
相關標籤/搜索