CImageList使用指南

2021-06-21 12:16:01 字數 1463 閱讀 6391

1.綜述

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

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

2.新增影象的兩種方法

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

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

// 建立乙個cimagelist類的指

針變數cimagelist* pimagelist;

pimagelist = 

newcimagelist();

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 = 

newcbitmap;

//從檔案匯入位

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