CImageList 使用指南

2021-08-31 08:25:12 字數 1397 閱讀 3941

1.綜述

在mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象(可以是不同型別)的集合,其主要用於應用程式中大規模圖示的儲存。該控制項是不可見的,通常與其它如clistbox,ccombobox,ccomboboxex,ctabctrl以及ctreectrl一起使用,為他們提供圖示資源。

圖象的每個集合中均以0為圖象索引基數,可以把這些圖示看成是以陣列方式儲存的,影象列表通常由大圖示或位圖構成,其中包含位圖模式。實際上,所有的在同乙個圖象列表中的圖示都被儲存在乙個螢幕裝置的點陣圖中。

2.新增影象的兩種方法

通常可以向cimagelist物件中新增點陣圖和圖示資源。其資源可以是程式中資源檔案中的資源,也可以直接從外部檔案調入。

(1)從程式中資源檔案中新增圖示和點陣圖影象如下所示(通常這是最為簡單直觀的方法):

// 建立乙個cimagelist類的指標變數

cimagelist* pimagelist;

pimagelist = new cimagelist();

pimagelist->create(32, 32, ilc_color32, 0, 4); // 必不可少

// 新增圖示,圖示可以隨影象列表大小自動拉伸

// 新增位圖,並使黑色為透明色,如果影象列表大小和點陣圖大小不一致可能會導致天新增失敗

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使用指南

cimagelist使用指南 1.綜述 在 mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大 規模圖示的儲存,該控制項是不可見的。通常與其它如clistbox,ccombobox,ccomboboxex以及ct...

CImageList使用指南

1.綜述 在mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大規模圖示的儲存。該控制項是不可見的,通常與其它如clistbox,ccombobox,ccomboboxex,ctabctrl以及ctreectrl一...