CImageList使用指南

2021-04-30 07:53:26 字數 1714 閱讀 1714

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一...