使用CImageList的一點心得

2021-07-11 00:12:26 字數 1748 閱讀 6775

cimagelist就是乙個容器,用來儲存資源,方便這些資源被clistbox,ccombobox,ccomboboxex,ctabctrl以及ctreectrl,clistctrl等使用。

要使用cimgelist首先要使用它的create函式:

一般用的比較多的是這乙個函式,當然,它還有很多過載,自己可以去翻閱msdn.

bool create( int cx, int cy, uint nflags, int ninitial, int ngrow );

cx與cy表示圖示的大小,nflags確定建立影象列表的型別,可以是以下值的組合: ilc_color、ilc_color4、ilc_color8、ilc_color16、ilc_color24、ilc_color32、 ilc_colorddb和ilc_mask;

用的較多的是ilc_color32表示顏色數目,自然越多越好,ilc_mask也很常用,如果不設定這個值,那個圖示透明的地方會被黑色填充。

ninitial指的是初始時list中包含的容量,ngrow表示當原來的容量用完之後每次新增的新的容量(大於等於1就可以了).

然後我們就新增了,暫時我只說明從程式中資源檔案中新增圖示這種方法

[cpp]view plain

copy

print

?cimagelist *pimage;  

pimage = new

cimagelist();  

pimage->create(16, 16, ilc_color32 | ilc_mask, 2, 2);  

//新增圖示

hicon

pimage->add(icon);  

然後在要使用資源的地方呼叫setimagelist即可,新增對於該類資源的引用。

cimagelist* setimagelist( cimagelist* pimagelist, int nimagelist );

其返回值是指向前乙個影象列表控制項的乙個指標,如果不存在前乙個影象列表則為null;其中引數pimagelist是指向影象列表的標識,nimagelist是影象列表的型別,可以是如下值:

lvsil_normal 用大圖示方式進行影象列表;

lvsil_small 用小圖示方式進行影象列表;

我們以在clistview為基類的子類中的oninitialupdate()函式為例,來看一看如何使用:

[cpp]view plain

copy

print

?void

cemaillistview::oninitialupdate()    

注:pimage為指向cimagelist的指標.

效果如下:

使用cimagelist我們經常犯的乙個錯誤是,我們經常這麼寫:

[cpp]view plain

copy

print

?void

cemaillistview::oninitialupdate()    

這麼寫的話,我們的程式將看不到圖示,很簡單的乙個道理,因為pimage是乙個區域性變數,oninitialupdate()函式執行完畢之後pimage就已經析構了,**還有什麼對於圖示的引用,解決的辦法就是讓pimage成為類的成員變數或者讓其成為乙個指標。

MyEclipse Tomcat的一點使用經驗

我用的是myeclipse6.5 1 編碼 在project裡可以設定整個工程的編碼,而對於每個檔案的編碼則是在開啟檔案後,在edit下拉列表的最下方有乙個setencoding,那裡可以設定。2 關閉自動更新 在window preferences myeclipse的community esse...

一點一點進步

requestparam,是獲取前端傳遞給後端的引數,可以使get方式,也可以是post方式。若前端傳遞的引數和後端接收的引數名稱不一致,則必須要標註。pathvariable,是獲取get方式,url後面引數,進行引數繫結。1.裝箱就是講基本資料型別轉換為包裝類,拆箱就是自動將包裝類轉換為基本資料...

adb 使用的一點命令

自用,只貼自己常用的,新手上路 目前使用mac電腦,終端下cd 編輯 bash profile export sdk home users library android sdk export path exportpath sdk home tools sdk home platform tool...