- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- VC5中如何使用標簽控件
小編給大家分享一下VC5中如何使用標簽控件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
VC5中,標簽控件是由CTabCtrl類(lèi)來(lái)作數據支持的。做一個(gè)標簽控件,主要有以下幾個(gè)步驟:
一、在ResourceView標簽頁(yè)(就是VC5左面的標簽控件第二項)的對話(huà)框中添加TABCTRL(比如取名為MYTABCTRL)。
二、在ClassWizard中為剛添加的標簽控件關(guān)聯(lián)上一個(gè)CTabCtrl變量(比如取名為mytab)。
三、為標簽控件添加項目。
四、到此為止,一個(gè)標簽控件就做好了?,F在便可以用ClassWizard為標簽控件添加消息映射了。
下面重點(diǎn)介紹為標簽控件添加項目的方法。
CTabCtrl類(lèi)有一個(gè)成員函數InsertItem,它的原型是:
BOOL InsertItem(int nItem,TC_ITEM*pTabCtrlItem);
其中第一個(gè)參數是加入項目的序號,此序號將在調用CTabCtrl的另一個(gè)成員函數GetCurSel()時(shí)作為返回值。與GetCurSel()對應的就是SetCurSel(int nItem),SetCurSel函數可改變標簽控件當前選定的項目,其中nItem就是該項目的序號。
InsertItem的關(guān)鍵在于第二個(gè)參數PTabCtrlItem。這是一個(gè)指向TC_ITEM結構的指針。
TC_ITEM結構的定義如下:
typedef struct_TC_ITEM
{
UINT mask; // 標簽控件的類(lèi)型
UINT lnReserved1; // VC保留,勿用
UINT lnReserved2; // VC保留,勿用
LPSTR pszText; // 標簽控件的項目文字
int cchTextMax; // pszText的長(cháng)度
int iImage; // 標簽控件的圖形序號
LPARAM lParam; // 用于交換的數據
}TC_ITEM;
在編程中,真正經(jīng)常使用的只有mask、pszText、iImage三個(gè)成員變量。
1.mask
指定標簽控件的類(lèi)型。它可以是以下三個(gè)值:
TCIF_TEXT pszText成員有效
TCIF_IMAGE iImage成員有效
TCIF_PARAM iParam成員有效
如果要使用多個(gè)屬性,應該用按位或運算符“|”連接。例如要使pszText和iImage成員同時(shí)有效,則用TCIF_TEXT|TCIF_IMAGE作為mask的值。
2.pszText
標簽控件的項目文字,可直接賦予字符串值。此時(shí)標簽控件的類(lèi)型必須有TCIF_TEXT。
3.iImage
標簽控件的圖形序號,這是為標簽控件添加圖形所必須用到的一個(gè)成員變量。此標簽控件必須有TCIF_IMAGE。
在賦值時(shí),只需給這三個(gè)(有時(shí)是兩個(gè))變量賦值就行了。
下面為大家介紹iImage的用法。
iImage中存儲的是項目的圖形序號。這個(gè)序號所對應的圖形(可能為圖標和位圖)將被顯示到標簽控件項目文字的左邊。這些圖形可以是任意大小,但必須一樣大。
標簽控件的每一個(gè)項目的iImage組成了一個(gè)序列,這個(gè)序列所對應的圖形是用另一個(gè)類(lèi)CImageList來(lái)管理的。下面請看CImageList的用法。
我在使用CImageList時(shí),只用到以下幾個(gè)成員函數:
1.BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow);
這個(gè)函數建立一個(gè)含nGrow個(gè)圖形(每個(gè)圖形為cx長(cháng),cy高以nInitial為初值:通常為0)的空CImageList;其中有個(gè)nFlages參數,它用來(lái)指定圖形的顏色屬性,它的值只能為以下幾個(gè)值中的一個(gè):
ILC_COLOR 使用默認顏色(一般為16色)
ILC_COLOR4 使用4位色(16色)
ILC_COLOR8 使用8位色(256色)
ILC_COLOR16 使用16位色(64K色)
ILC_COLOR24 使用24位色(16M色)
ILC_COLOR32 使用32位色(4G色)
ILC_COLORDDB 使用系統當前色
2.BOOL Create(UINT nBitmapID,int cx,int nGrow,COLORREF crMask);
這個(gè)函數是以nBitmapID所代表的位圖(已在rc文件中定義,與定義工具條的位圖相似)建立一個(gè)含有nGrow個(gè)圖形(每個(gè)圖形長(cháng)為cx)的CImageList;
其中crMask指定位圖中的什么顏色將被替換為黑色,一般就用黑色(RGB(0,0,0))。
3.int Add(CBitmap*pbmImage,COLORREF crMask);
這個(gè)函數往CImageList中追加一個(gè)位圖。其中nbmImage可以通過(guò)先定義一個(gè)CBitmap指針,再用CBitmap的成員LoadBitman來(lái)得到。比如:
CBitmap*mvbitmap;
mvhitmap=new CBitmap();
mvbitmap->LoadBitmap(MYPICTURE); // MYPICTURE是已定義的位圖資源crMask參數與前面相同。
4.int Add(HICON hIcon):
這個(gè)函數往CImageList中追加一個(gè)圖標。
其中hIcon可以用AfxGetApp()->LoadIcon(UINT nIDResource)來(lái)得到。如:AfxGetApp()->LoadIcon(MYICON);//其中MYICON是已定義的圖標資源,當CImageList定制好后,調用CTabCtrl的成員函數SetImageList,其原型如下:
CImageList*SetImageList(CImageList*pImageList);
其中的pImageList正是指向我們剛才定制的CImageList對象的指針,而以前的iImage參數就是CImageList中的圖形序號了。這樣,一個(gè)帶有圖形的標簽控件就做好了。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站