cimagelist使用指南
1.綜述 在
mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象(可以是不同型別)的集合,其主要用於應用程式中大
規模圖示的儲存,該控制項是不可見的。通常與其它如clistbox,ccombobox,ccomboboxex以及ctabctrl一起使用,為他們提供圖示資源。
圖象的每個集合中均以0為圖象索引基數,可以把這些圖示看成是以陣列方式儲存的,影象列表通常由大圖示或位圖構成,其中包含位圖模式,
實際上,所有的在同乙個圖象列表中的圖示都被儲存在乙個屏
幕裝置的點陣圖中。
2.新增影象的兩種方法
通常可以向cimagelist物件中新增點陣圖和圖示資源。其資源可以是程式中資源檔案中的資源,也可以直接從外部檔案調入。
(1)從程式中資源檔案中新增圖示和點陣圖影象如下所示(通常這是最為簡單直觀的方法):
//建立乙個cimagelist類的指標變數
cimagelist
*pimagelist;
pimagelist
=new
cimagelist();
pimagelist
->
create(
32,
32, ilc_color32, 0,
4);//新增圖示,圖示可以隨影象列表大小自動拉伸
pimagelist
->
->
loadicon(idi_icon1));
pimagelist
->
->
loadicon(idi_icon2));
//新增位圖,並使黑色為透明色,如果影象列表大小和點陣圖大小不一致可能會導致天新增失敗
cbitmap bmp;
bmp.loadbitmap(idb_bitmap1)
pimagelist
->
add(
&bmp, rgb(0,
0, 0));
bmp.deleteobject();
bmp.loadbitmap(idb_bitmap2)
pimagelist
->
add(
&bmp, rgb(0,
0, 0));
(2)從外部檔案中新增圖示和點陣圖影象**如下所示(這種方法可以是可執行程式更小,便於發行)
hbitmap hbitmap;
cbitmap
*pbitmap;
cstring filepathname ="
e:/time.bmp";
pbitmap
=new
cbitmap;
//從檔案匯入位圖
hbitmap
=(hbitmap)loadimage(afxgetinstancehandle(),filepathname,image_bitmap,0,
0,lr_loadfromfile);
pbitmap
->
attach(hbitmap);
m_pimagelist
->
add(pbitmap, rgb(0,
0,0));
這樣乙個影象列表控制項就建立好了,並且已經新增了影象,接下來就可以在其它控制項中使用其中的影象。通常需要呼叫setimagelist(m_pimagelist)將當前影象列表設定為引用影象源。
CImageList使用指南
1.綜述 在mfc 中cimagelist 類封裝了 影象列表控制項的功能,影象列表是乙個具有相同大小的 影象 可以是不同 型別 的集合,其主要用於 應用程式中大規模 圖示的儲存。該控制項是不可 見的,通常與其它如 clistbox ccombobox ccomboboxex ctabctrl 以及...
CImageList使用指南
1.綜述 在mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大規模圖示的儲存。該控制項是不可見的,通常與其它如clistbox,ccombobox,ccomboboxex,ctabctrl以及ctreectrl一...
CImageList使用指南
1.綜述 在mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大規模圖示的儲存。該控制項是不可見的,通常與其它如clistbox,ccombobox,ccomboboxex,ctabctrl以及ctreectrl一...