資源描述:
《VC5中使用標(biāo)簽控件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VC5中使用標(biāo)簽控件VC5中,標(biāo)簽控件是由CTabCtrl類來作數(shù)據(jù)支持的。做一個(gè)標(biāo)簽控件,主要有以下幾個(gè)步驟: 一、在ResourceView標(biāo)簽頁(就是VC5左面的標(biāo)簽控件第二項(xiàng))的對話框中添加TABCTRL(比如取名為MYTABCTRL)?! 《?、在ClassWizard中為剛添加的標(biāo)簽控件關(guān)聯(lián)上一個(gè)CTabCtrl變量(比如取名為mytab)?! ∪闃?biāo)簽控件添加項(xiàng)目。 四、到此為止,一個(gè)標(biāo)簽控件就做好了?,F(xiàn)在便可以用ClassWizard為標(biāo)簽控件添加消息映射了?! ∠旅嬷攸c(diǎn)介紹為標(biāo)簽控件添加項(xiàng)目的方法。 CTabCtrl類有一個(gè)
2、成員函數(shù)InsertItem,它的原型是: BOOLInsertItem(intnItem,TC_ITEM*pTabCtrlItem); 其中第一個(gè)參數(shù)是加入項(xiàng)目的序號,此序號將在調(diào)用CTabCtrl的另一個(gè)成員函數(shù)GetCurSel()時(shí)作為返回值。與GetCurSel()對應(yīng)的就是SetCurSel(intnItem),SetCurSel函數(shù)可改變標(biāo)簽控件當(dāng)前選定的項(xiàng)目,其中nItem就是該項(xiàng)目的序號?! nsertItem的關(guān)鍵在于第二個(gè)參數(shù)PTabCtrlItem。這是一個(gè)指向TC_ITEM結(jié)構(gòu)的指針?! C_ITEM結(jié)構(gòu)的定義如下
3、: typedefstruct_TC_ITEM { UINTmask;//標(biāo)簽控件的類型 UINTlnReserved1;//VC保留,勿用 UINTlnReserved2;//VC保留,勿用 LPSTRpszText;//標(biāo)簽控件的項(xiàng)目文字 intcchTextMax;//pszText的長度 intiImage;//標(biāo)簽控件的圖形序號 LPARAMlParam;//用于交換的數(shù)據(jù) }TC_ITEM; 在編程中,真正經(jīng)常使用的只有mask、pszText、iImage三個(gè)成員變量?! ?.mask 指定標(biāo)簽控件的類型。它可
4、以是以下三個(gè)值: TCIF_TEXTpszText成員有效 TCIF_IMAGEiImage成員有效 TCIF_PARAMiParam成員有效 如果要使用多個(gè)屬性,應(yīng)該用按位或運(yùn)算符“
5、”連接。例如要使pszText和iImage成員同時(shí)有效,則用TCIF_TEXT
6、TCIF_IMAGE作為mask的值?! ?.pszText 標(biāo)簽控件的項(xiàng)目文字,可直接賦予字符串值。此時(shí)標(biāo)簽控件的類型必須有TCIF_TEXT?! ?.iImage 標(biāo)簽控件的圖形序號,這是為標(biāo)簽控件添加圖形所必須用到的一個(gè)成員變量。此標(biāo)簽控件必須有TCIF_IMAGE。
7、 在賦值時(shí),只需給這三個(gè)(有時(shí)是兩個(gè))變量賦值就行了?! ∠旅鏋榇蠹医榻BiImage的用法?! Image中存儲的是項(xiàng)目的圖形序號。這個(gè)序號所對應(yīng)的圖形(可能為圖標(biāo)和位圖)將被顯示到標(biāo)簽控件項(xiàng)目文字的左邊。這些圖形可以是任意大小,但必須一樣大?! ?biāo)簽控件的每一個(gè)項(xiàng)目的iImage組成了一個(gè)序列,這個(gè)序列所對應(yīng)的圖形是用另一個(gè)類CImageList來管理的。下面請看CImageList的用法?! ∥以谑褂肅ImageList時(shí),只用到以下幾個(gè)成員函數(shù): 1.BOOLCreate(intcx,intcy,UINTnFlags,intnIniti
8、al,intnGrow); 這個(gè)函數(shù)建立一個(gè)含nGrow個(gè)圖形(每個(gè)圖形為cx長,cy高以nInitial為初值:通常為0)的空CImageList;其中有個(gè)nFlages參數(shù),它用來指定圖形的顏色屬性,它的值只能為以下幾個(gè)值中的一個(gè): ILC_COLOR使用默認(rèn)顏色(一般為16色) ILC_COLOR4使用4位色(16色) ILC_COLOR8使用8位色(256色) ILC_COLOR16使用16位色(64K色) ILC_COLOR24使用24位色(16M色) ILC_COLOR32使用32位色(4G色) ILC_COLORDDB
9、使用系統(tǒng)當(dāng)前色 2.BOOLCreate(UINTnBitmapID,intcx,intnGrow,COLORREFcrMask); 這個(gè)函數(shù)是以nBitmapID所代表的位圖(已在rc文件中定義,與定義工具條的位圖相似)建立一個(gè)含有nGrow個(gè)圖形(每個(gè)圖形長為cx)的CImageList; 其中crMask指定位圖中的什么顏色將被替換為黑色,一般就用黑色(RGB(0,0,0))?! ?.intAdd(Cbitmap*pbmImage,COLORREFcrMask); 這個(gè)函數(shù)往CImageList中追加一個(gè)位圖。其中nbmImage可以
10、通過先定義一個(gè)Cbitmap指針,再用Cbitmap的成員LoadBitman來得到。比如: Cbitmap*mvbit