cimagelist create,
1.概观
在MFC中,CImageList类封装了图像列表控件的功能。图像列表是大小相同(可以是不同类型)的图像的集合,主要用于存储应用程序中的大尺寸图标。该控件是不可见的,通常与CListBox、CComboBox、CComboBoxEx、CTabCtrl和CTreeCtrl等其他控件一起使用,为它们提供图标资源。
每一组图像都以0为图像索引基数,这些图标可以视为存储在一个数组中。图像列表通常由大图标或位图组成,包括位图图案。实际上,同一图像列表中的所有图标都存储在屏幕设备的位图中。
2.添加图像的两种方法
通常可以向CImageList对象添加位图和图标资源。资源可以是程序中资源文件中的资源,也可以直接从外部文件中调用。
(1)从程序中的资源文件添加图标和位图图像,如下所示(通常这是最简单直观的方法):
【cpp】查看plaincopyprint?//创建CImageList类的指针变量CImageList * pimagelistpImageList=new CImageList();pImageList- Create(32,32,ILC_COLOR32,0,4);//Essential//添加一个图标,可以随着图片列表的大小自动拉伸PImagelist-Add(afxgetapp()-loadicon(idi _ icon 1));pImageList-Add(afx getapp()-LoadIcon(IDI _ icon 2));//添加位图,并使黑色透明。如果图像列表大小与位图大小不一致,可能会导致当天添加CBitmap bmp失败;bmp。load bitmap(IDB _ bitmap 1)pImageList-Add(BMP,RGB(0,0,0));bmp。delete object();bmp。load bitmap(IDB _ bitmap 2)pImageList-Add(BMP,RGB(0,0,0));
(2)从如下所示的外部文件中添加图标和位图图像代码(这种方法可以使可执行程序更小,易于发布)
【cpp】查看plaincopyprint?HBITMAP hBitmapCBitmap * pBitmapCString file pathname= e:/time . BMP ;pBitmap=new CBitmap//从文件导入位图hbit map=(hbit map)loadimage(afxgetinstancehandle(),filepathname,image _ bitmap,0,0,lr _ load from file);pbit map-Attach(hbit map);m_pImageList- Add(pBitmap,RGB(0,0,0));
已经创建了这样的图像列表控件,并且已经添加了图像,然后这些图像可以在其他控件中使用。通常调用SetImageList(m_pImageList)将当前图像列表设置为参考图像源。
出发地:http://blog..net/yyyzlf/article/details/4916335
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。