前面兩節(jié)雞啄米講了樹形控件Tree Control,本節(jié)開始講解標(biāo)簽控件Tab Control,也可以稱為選項(xiàng)卡控件。
標(biāo)簽控件簡介
標(biāo)簽控件也比較常見。它可以把多個頁面集成到一個窗口中,每個頁面對應(yīng)一個標(biāo)簽,用戶點(diǎn)擊某個標(biāo)簽時,它對應(yīng)的頁面就會顯示。下圖是Windows系統(tǒng)配置中標(biāo)簽控件的例子:
使用標(biāo)簽控件我們可以同時加載多個有關(guān)聯(lián)的頁面,用戶只需點(diǎn)擊標(biāo)簽即可實(shí)現(xiàn)頁面切換,方便靈活的進(jìn)行操作。每個標(biāo)簽除了可以顯示標(biāo)簽文本,還可以顯示圖標(biāo)。
標(biāo)簽控件相當(dāng)于是一個頁面的容器,可以容納多個對話框,而且一般也只容納對話框,所以我們不能直接在標(biāo)簽控件上添加其他控件,必須先將其他控件放到對話框中,再將對話框添加到標(biāo)簽控件中。最終我們點(diǎn)擊標(biāo)簽切換頁面時,切換的不是控件的組合,而是對話框。
標(biāo)簽控件的通知消息
在對標(biāo)簽控件進(jìn)行一些操作,比如點(diǎn)擊標(biāo)簽時,標(biāo)簽控件也會向父窗口發(fā)送一些通知消息。我們可以為這些通知消息添加處理函數(shù),實(shí)現(xiàn)各種功能。標(biāo)簽控件的主要通知消息及含義如下所示:
TCN_SELCHANGE:通知父窗口控件的標(biāo)簽選擇項(xiàng)已經(jīng)改變
TCN_SELCHANGING 通知父窗口控件的標(biāo)簽選擇項(xiàng)正在改變
TCN_KEYDOWN:通知父窗口在控件范圍內(nèi)鍵盤被按下
TCN_GETOBJECT:具有TCS_EX_REGISTERDROP擴(kuò)展特性并且對象被拖動時的通知消息
TCN_FOCUSCHANGE:通知父窗口控件的按鈕聚焦已經(jīng)改變
NM_CLICK:通知父窗口用戶在控件區(qū)域范圍內(nèi)點(diǎn)擊了鼠標(biāo)左鍵
NM_RCLICK:通知父窗口用戶在控件區(qū)域范圍內(nèi)點(diǎn)擊了鼠標(biāo)右鍵
NM_RELEASEDCAPTURE:通知父窗口在控件區(qū)域范圍內(nèi)釋放鼠標(biāo)捕獲消息
標(biāo)簽控件的相關(guān)結(jié)構(gòu)體
標(biāo)簽控件在使用中也有一些相關(guān)的結(jié)構(gòu)體經(jīng)常用到,主要以下幾個:
1. TCITEMHEADER結(jié)構(gòu)體
該結(jié)構(gòu)體用來指定或獲取標(biāo)簽控件本身的屬性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。
2. TCITEM結(jié)構(gòu)體
該結(jié)構(gòu)體用來指定或獲取標(biāo)簽頁的屬性。用在TCM_INSERTITEM、TCM_GETITEM和TCM_SETITEM消息中。
3. TCHITTESTINFO結(jié)構(gòu)體
該結(jié)構(gòu)體包含了鼠標(biāo)單擊測試的信息。
4. NMTCKEYDOWN結(jié)構(gòu)體
該結(jié)構(gòu)體包含了標(biāo)簽控件中鍵盤按下的相關(guān)信息。主要用在TCN_KEYDOWN通知消息中。
標(biāo)簽控件的上半部分就講到這里了,下節(jié)教程雞啄米將繼續(xù)講解標(biāo)簽控件的知識和應(yīng)用實(shí)例。