1.綜述
在MFC中CImageList類封裝了圖像列表控件的功能,圖像列表是一個具備相同大小的圖像(能夠是不一樣類型)的集合,其主要用於應用程序中大規模圖標的存儲。該控件是不可見的,一般與其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一塊兒使用,爲他們提供圖標資源。數組
圖象的每一個集合中均以0爲圖象索引基數,能夠把這些圖標當作是以數組方式存儲的,圖像列表一般由大圖標或位圖構成,其中包含位圖模式。實際上,全部的在同一個圖象列表中的圖標都被存儲在一個屏幕設備的位圖中。spa
2.添加圖像的兩種方法
一般能夠向CImageList對象中添加位圖和圖標資源。其資源能夠是程序中資源文件中的資源,也能夠直接從外部文件調入。.net
(1)從程序中資源文件中添加圖標和位圖圖像以下所示(一般這是最爲簡單直觀的方法):對象
// 創建一個CImageList類的指針變量
CImageList* pImageList;
pImageList = new CImageList();
pImageList->Create(32, 32, ILC_COLOR32, 0, 4); // 必不可少
// 添加圖標,圖標能夠隨圖像列表大小自動拉伸
pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1));
pImageList->Add(AfxGetApp()->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));blog
(2)從外部文件中添加圖標和位圖圖像代碼以下所示(這種方法能夠是可執行程序更小,便於發行)索引
HBITMAP hBitmap;
CBitmap *pBitmap;
CString FilePathName = "e:/TIME.bmp";
pBitmap = new CBitmap;
//從文件導入位圖資源
HBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),FilePathName,it
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
pBitmap->Attach(hBitmap);
m_pImageList->Add(pBitmap, RGB(0,0,0));List
這樣一個圖像列表控件就建立好了,而且已經添加了圖像,接下來就能夠在其它控件中使用其中的圖像。一般須要調用SetImageList(m_pImageList)將當前圖像列表設置爲引用圖像源map
轉自:http://blog.csdn.net/huahuamoon/article/details/2261655