1.综述
在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。

图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式。实际上,所有的在同一个图象列表中的图标都被存储在一个屏幕设备的位图中。

2.添加图像的两种方法
通常可以向CImageList对象中添加位图和图标资源。其资源可以是程序中资源文件中的资源,也可以直接从外部文件调入。

// 创建一个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));  

 (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));  

CImageList::Create
BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );
BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );
BOOL Create( LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREFcrMask );
BOOL Create( CImageList& ImageList1, int nImage1, CImageList& ImageList2, int nImage2, int dx, int dy );
返回值:如果成功,则返回非零值,否则为0。
参数:

cx 每个图象的尺寸,以像素为单位。
cy 每个图象的尺寸,以像素为单位。
nFlags 确定创建的图象列表类型。此参数可能为以下值的组合,但只能有一个ILC_COLOR值。

含义
ILC_COLOR 如果没有其它ILC_COLOR* 标记被确定,则使用缺省行为。典型地,缺省为ILC_COLOR4;但对于旧的显示驱动程序,缺省为ILC_COLORDDB
ILC_COLOR4 使用4位(16色)设备独立位图(DIB)部分作为图象列表的位图
ILC_COLOR8 使用8位DIB部分。彩色表格使用的颜色与半色调调色板的一样
ILC_COLOR16 使用16位(32/64K色)DIB部分
ILC_COLOR24 使用24位DIB部分
ILC_COLOR32 使用32位DIB部分
ILC_COLORDDB 使用设备独立位图
ILC_MASK 使用掩码。图象列表包含两个位图,其中一个是用做掩码的位图。如果不包括此值,图象列表只包含一个位图
nInitial 图象列表最初包含的图象数。
nGrow 当系统需要改变列表为新图象准备空间时,图象列表可生成的图象数。此参数替代改变的图象列表所能包含的新图象数。
nBitmapID 与图象列表联系的位图的源ID。
crMask 用于生成一个掩码的颜色。此指定的位图中的颜色的每个像素变为黑色,掩码中相应位设置为1。
lpszBitmapID 包含图象的源ID的字符串。
ImageList1 CImageList对象的参考。
nImage1 第一个存在的图象的索引。
ImageList2 CImageList对象的参考。
nImage2 第二个存在的图象的索引。
dx 每个图象的尺寸,用像素表示。
dy 每个图象的尺寸,用像素表示。

说明:
需要两步构造一个CImageList。首先调用构造函数,然后调用Create,创建图象列表并附加给CImageList对象。

CImagelist 基本用法相关推荐

  1. vc经验(它山之石)

    1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学 ...

  2. VC/MFC 编程技巧大总结

    1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐 ...

  3. 我学习VC中所得的点点心得

    1  toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2  VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3  Java学习 ...

  4. C++/MFC编程技巧

    1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐 ...

  5. 学习VC中所得的点点心

    我学习VC中所得的点点心得,有新的内容我会慢慢补上的 1  toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2  VC++中 WM_QUERYENDSESSION WM_EN ...

  6. VC一些小细(转载)

    1  VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 2 在VC下执行DOS命令    a.   system("md c://12" ...

  7. [转]更多的VC经验

    [转]更多的VC经验 原文:http://blog.csdn.net/benny5609/archive/2008/02/28/2130269.aspx 1 toolbar默认位图左上角那个点的颜色是 ...

  8. MFC中CImageList(图形列表控件)、CTreeCtrl(树形列表控件)的简单用法

    网上资料: CImageList控件:用来保存一组相同大小的图标或位图,它没有图形显示界面,主要用途是为其它控件提供图形列表.可以通过索引访问图标或位图. CImageList常用的函数有: 函数 说 ...

  9. LIST_VIEW_和LVITEM用法

    ListCtrl 在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用. 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象, ...

  10. MFC之ComboBox控件用法

    本文以实例形式较为详细的讲述了MFC中ComboBox控件的用法.分享给大家供大家参考之用.具体方法如下: 一.ComboBox简介: ComboBox控件是由一个文本输入控件和一个下拉菜单组成的.用 ...

最新文章

  1. ActiveMQ的多节点集群
  2. SD-WAN开源优势是什么?
  3. [全文索引]非索引字表
  4. Centos:netstat or ifconfig 使用不了 最小化安装后无法联网
  5. jackson - @JsonProperty的使用
  6. python列表添加元素到中间_python在列表的元素中间插入空行
  7. html是非结构数据吗,Python处理非结构数据
  8. Error opening Velodyne socket dump file 的一种可能解决方法
  9. 单片机怎么通过按键控制计时器的开始和停止_单片机新手入门系列视频集锦
  10. VMware中的三种网络模式
  11. 如何安装markman
  12. python父亲节快乐_打算送亲戚家孩子新年礼物,有哪些礼物孩子喜欢且有意义?...
  13. 万丈高楼平地起 AI帮你做自己
  14. PS基础操作之照片处理
  15. Java: 聚合数据API接口调用城市天气预报
  16. 项目经理?项目成员?
  17. c语言strcat()/strcat_s()函数详解
  18. codeforces 448CPainting Fence
  19. 第8节 实例-写个简单的操作器
  20. Moran_DeepLPF_Deep_Local_Parametric_Filters_for_Image_Enhancement_CVPR_2020_paper

热门文章

  1. 常见边缘检测对比(Roberts算子、Prewitt算子、Sobel算子、Laplacian算子、Canny算子)
  2. JAVASUNHome家政服务管理平台计算机毕业设计Mybatis+系统+数据库+调试部署
  3. eclipse汉化版与背景更换更换jdk及项目jre以及环境变量的配置
  4. OPencv 灰度直方图、直方图规定化
  5. 专访刘琛梅:如何全面提升测试效率和质量?
  6. 土地利用转移矩阵图怎么做_如何用Arcgis做土地利用转移矩阵?求教各位..._土地估价师_帮考网...
  7. Android adb 常用命令
  8. 【P01】双运放非反相放大器和失调处置
  9. 想做游戏测试,你一定要知道这几点!
  10. Matlab-有限单元法-2D梁单元的刚度矩阵组装(曾攀)