zoukankan      html  css  js  c++  java
  • CImagelist 基本用法

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

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


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


    (1)从程序中资源文件中添加图标和位图图像如下所示(通常这是最为简单直观的方法):

    1. // 创建一个CImageList类的指针变量 
    2. CImageList* pImageList; 
    3. pImageList = new CImageList(); 
    4. pImageList->Create(32, 32, ILC_COLOR32, 0, 4); // 必不可少 
    5.  
    6. // 添加图标,图标可以随图像列表大小自动拉伸 
    7. pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON1)); 
    8. pImageList->Add(AfxGetApp()->LoadIcon(IDI_ICON2)); 
    9.  
    10. // 添加位图,并使黑色为透明色,如果图像列表大小和位图大小不一致可能会导致天添加失败 
    11. CBitmap bmp; 
    12. bmp.LoadBitmap(IDB_BITMAP1) 
    13. pImageList->Add(&bmp, RGB(0, 0, 0)); 
    14. bmp.DeleteObject(); 
    15. bmp.LoadBitmap(IDB_BITMAP2) 
    16. pImageList->Add(&bmp, RGB(0, 0, 0)); 


    (2)从外部文件中添加图标和位图图像代码如下所示(这种方法可以是可执行程序更小,便于发行)

    1. HBITMAP hBitmap; 
    2. CBitmap *pBitmap; 
    3. CString FilePathName = "e:/TIME.bmp"
    4. pBitmap = new   CBitmap; 
    5. //从文件导入位图 
    6.  
    7. HBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),FilePathName, 
    8.  
    9. IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
    10. pBitmap->Attach(hBitmap); 
    11. m_pImageList->Add(pBitmap, RGB(0,0,0)); 


    这样一个图像列表控件就创建好了,并且已经添加了图像,接下来就可以在其它控件中使用其中的图像。通常需要调用SetImageList(m_pImageList)将当前图像列表设置为引用图像源。

    from:http://blog.csdn.net/yyyzlf/article/details/4916335

  • 相关阅读:
    IOS开发之-Xcode插件
    IOS开发之-NS**概述
    python 中文乱码 问题深入分析
    Django入门示例之被解放的姜戈——03 所谓伊人(模板及模板处理)
    td太多内容显示...
    div 居中CSS实现
    取得页面元素类型 转
    aspose.words 处理word转PDF
    jacob 操作word转pdf
    ajax 数据回传
  • 原文地址:https://www.cnblogs.com/lidabo/p/2855388.html
Copyright © 2011-2022 走看看