国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

VC通用控件編程之CImageList控件

2019-11-17 05:16:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  圖像列表控制(CImageList)是相同大小圖像的一個(gè)集合,每個(gè)集合中均以0為圖像的索引序號(hào)基數(shù),圖像列表通常由大圖標(biāo)或位圖構(gòu)成,其中包含透明位圖模式。可以利用WINDOWS32位應(yīng)用程序接口函數(shù)API來(lái)繪制、建立和刪除圖像,并能實(shí)現(xiàn)增加、刪除、替換和拖動(dòng)圖像等操作。圖像列表控制提供了控制圖像列表的基本方法,這些方法在WINDOWS95及以后版本才能實(shí)現(xiàn)。  (一)圖像控制的對(duì)象結(jié)構(gòu)  1、圖像控制的數(shù)據(jù)成員   m_hImageList 連接圖像對(duì)象的控制句柄  2、圖像控制的建立方法   CimageList&imageList建立圖像控制對(duì)象結(jié)構(gòu)   Create 初始化圖像列表并綁定對(duì)象  圖像控制的建立方法如下: BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow ); BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask ); BOOL Create( LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask ); BOOL Create( CImageList& imagelist1, int nImage1, CImageList& imagelist2 ,int nImage2,int dx, int dy );   其中各項(xiàng)參數(shù)的含義為:cx定義圖像的寬度,單位為象素;cy定義圖象的高度,單位為象素;nFlags確定建立圖像列表的類(lèi)型,可以是以下值的組合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILC_MASK;nInitial用來(lái)確定圖像列表包含的圖像數(shù)量;nGrow用來(lái)確定圖像列表可控制的圖像數(shù)量。   NbitmapID 用來(lái)確定圖像列表聯(lián)系的位圖標(biāo)志值;crMask表示顏色屏蔽位;    LpszBitmapID 用來(lái)確定包含位圖資源的標(biāo)識(shí)串;  imagelist1 指向圖像列表控制對(duì)象的一個(gè)指針;nImage1圖像列表1中包含的圖像數(shù) 量;imagelist2指向圖像列表控制對(duì)象的一個(gè)指針;nImage2圖像列表2中包含的圖像數(shù)量;dx表示以象素為單位的圖像寬度;dy表示以象素為單位的圖像高度。  同樣,圖像控制的建立也包括兩個(gè)步驟,首先建立圖像列表結(jié)構(gòu),然后建立圖像列表控制。  3、圖像控制的屬性類(lèi)  圖像控制的屬性類(lèi)包括返回m_hImageList.控制句柄GetSafeHandle、取得圖像列表中的圖像數(shù)量GetImageCount、設(shè)置圖像列表的背景顏色SetBkColor、取得圖像列表的背景顏色SetBkColor和取得圖像的有關(guān)信息SetBkColor。  4、圖像控制的操作方法  圖像控制的操作方法包括將一個(gè)圖像列表綁定到一個(gè)對(duì)象上Attach、將對(duì)象上的圖像列表解除綁定并返回句柄Detach、刪除一個(gè)圖像列表DeleteImageList、將一個(gè)圖像增加到圖像列表中Add和將一個(gè)圖像從圖像列表中刪除Remove等。  (二)圖像控制的應(yīng)用技巧  對(duì)于圖像控制,同樣不能單獨(dú)使用,必須與列表控制、樹(shù)控制和標(biāo)簽控制相互結(jié)合應(yīng)用,下面分別介紹其具體應(yīng)用技巧。  1、圖像控制在列表控制中的應(yīng)用技巧  ①設(shè)置圖像控制CListCtrl::SetImageList的調(diào)用格式如下: CImageList* SetImageList( CImageList* pImageList, int nImageList );   其返回值是指向前一個(gè)圖像列表控制的一個(gè)指針,假如不存在前一個(gè)圖像列表則為NULL;其中參數(shù)pImageList是指向圖像列表的標(biāo)識(shí),nImageList是圖像列表的類(lèi)型,可以是如下值:  LVSIL_NORMAL 用大圖標(biāo)方式進(jìn)行圖像列表;  LVSIL_SMALL 用小圖標(biāo)方式進(jìn)行圖像列表;  LVSIL_STATE 以圖像狀態(tài)進(jìn)行圖像列表;  ②取得圖像控制CListCtrl::GetImageList的調(diào)用格式如下: CImageList* GetImageList( int nImageList ) const;   其返回值為指向圖像列表控制的指針,其中nImageList用來(lái)確定取得返回值的圖像列表的 值,其取值與設(shè)置圖像列表函數(shù)相同。  ③圖像控制在列表控制中的應(yīng)用示例   CImageList Cil1,Cil2; //定義大小圖標(biāo)像列表   CVCLISTApp *pApp=(CVCLISTApp *)AfxGetApp();//取得列表控制程序   Cil1.Create(32,32,TRUE,2,2); //建立32位圖像控制   Cil1.Add(pApp->LoadIcon(IDI_GJ));//增加選中狀態(tài)圖像   Cil1.Add(pApp->LoadIcon(IDI_XS));//增加非選中狀態(tài)圖像   Cil2.Create(16,16,TRUE,2,2); //建立16位圖像控制   Cil2.Add(pApp->LoadIcon(IDI_GJ));//增加選中狀態(tài)圖像   Cil2.Add(pApp->LoadIcon(IDI_XS));//增加非選中狀態(tài)圖像   m_ListCtrl.SetImageList(&Cil1,LVSIL_NORMAL);//設(shè)置大圖標(biāo)控制   m_ListCtrl.SetImageList(&Cil2,LVSIL_SMALL);//設(shè)置小圖標(biāo)控制   2、圖像控制在樹(shù)控制中的應(yīng)用技巧
  ①設(shè)置圖像控制CTreeCtrl::SetImageList的調(diào)用格式如下: CImageList* SetImageList( CImageList * pImageList, int nImageListType );   其返回值為指向前前一個(gè)圖像列表的指針,否則為NULL;參數(shù)pImageList為指向圖像列表的標(biāo)識(shí),假如pImageList為NULL則所有的圖像都將從樹(shù)控制中被清除;nImageListType為圖像列表設(shè)置的類(lèi)型,可以是如下值之一:  TVSIL_NORMAL 設(shè)置正常圖像列表,其中包括選中和非選中兩種圖標(biāo);   TVSIL_STATE 設(shè)置圖像列表狀態(tài),指用戶自定義狀態(tài);  ②取得圖像控制CTreeCtrl::GetImageList的調(diào)用格式如下: CImageList* GetImageList( UINT nImage );   假如調(diào)用成功則返回圖像列表控制指針,否則為NULL;nImage為取得返回值的圖像列表類(lèi)型,其取值和取得圖像列表控制完全相同。  ③圖像控制在樹(shù)控制中的應(yīng)用示例 CImageList Cil1,Cil2;//定義大小圖標(biāo)像列表 CVCTREEApp *pApp=(CVCTREEApp *)AfxGetApp();//獲取應(yīng)用程序指針 Cil1.Create(16,16,ILC_COLOR,2,2);//建立圖像控制 Cil1.Add(pApp->LoadIcon(IDI_PM));//增加選中狀態(tài)圖像 Cil1.Add(pApp->LoadIcon(IDI_CJ));//增加非選中狀態(tài)圖像 m_TreeCtrl.SetImageList(&Cil1,TVSIL_NORMAL);//設(shè)置圖像控制列表   然后在樹(shù)控制的結(jié)構(gòu)定義中進(jìn)行如下設(shè)置: TCItem.item.iImage=0; //設(shè)置未選中圖像索引號(hào) TCItem.item.iSelectedImage=1;//設(shè)置選中時(shí)圖像引號(hào)   3、圖像控制在標(biāo)簽控制中的應(yīng)用技巧  ①設(shè)置圖像控制CTabCtrl::SetImageList的調(diào)用格式 CImageList * SetImageList( CImageList * pImageList );   其返回值為指向前一個(gè)圖像列表的指針,假如不存在前一個(gè)圖像列表則為NULL;pImageList為標(biāo)識(shí)TAB控制的圖像列表指針。  ②取得圖像控制CTabCtrl::GetImageList的調(diào)用格式 HIMAGELIST GetImageList() const;   其返回值為指向TAB控制的圖像列表指針,假如調(diào)用不成功則為NULL。  其應(yīng)用技巧較前兩種更加簡(jiǎn)單,這里不再贅述。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东乡| 滕州市| 长治市| 丹东市| 大关县| 永德县| 郸城县| 紫阳县| 方城县| 中江县| 原平市| 金川县| 财经| 绥滨县| 巫山县| 安顺市| 肇庆市| 贵港市| 六盘水市| 米易县| 牙克石市| 哈巴河县| 深水埗区| 靖西县| 芷江| 福清市| 玛沁县| 鄂伦春自治旗| 万宁市| 屏东市| 盱眙县| 鲁山县| 揭东县| 班戈县| 丰台区| 乌海市| 泸州市| 江川县| 东乡| 曲周县| 大悟县|