`
paulfzm
  • 浏览: 891236 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

CImageList 使用指南

    博客分类:
  • vc++
阅读更多

1.综述
在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。
图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式。实际上,所有的在同一个图象列表中的图标都被存储在一个屏幕设备的位图中。


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


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

  


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

  

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huahuamoon/archive/2008/04/08/2261655.aspx

分享到:
评论

相关推荐

    CListCtrl的使用完全指南.txt

    ### CListCtrl的使用完全指南 #### 概述 `CListCtrl`是Microsoft Foundation Class (MFC)库中的一个类,它代表了一个列表控件(`ListView`控件),可以用来显示一系列条目,每个条目又可以包含多个子项。`...

    tree control(使用说明).txt

    1. **创建图像列表**:使用`CImageList`类创建两个不同尺寸的图像列表,分别存储在`Cil1`和`Cil2`对象中。 2. **初始化对话框**:在`OnInitDialog()`函数中进行图像列表和样式设置。 - **创建图像列表**:使用`...

    Mfc Programming With Visual C 6 Unleashed

    本书还深入讨论了如何初始化和使用Windows常见控件,如热键控件(CHotKeyCtrl)、旋钮控件(CSpinButtonCtrl)、滑块控件(CSliderCtrl)、进度条控件(CProgressCtrl)、图像列表(CImageList)、列表视图控件...

    ClistCtrl-user.rar_clistctl

    **ClistCtrl用户指南** ClistCtrl是MFC(Microsoft Foundation Classes)库中一个非常重要的控件,它用于创建和管理列表视图。这个控件允许程序员在窗口中展示一系列可定制的数据项,通常包括文本、图像或者两者都...

    CListCtrl中嵌入Check,Radio,CComboBOx等控件

    - 在CListCtrl中实现单选按钮功能并不直接,通常需要自定义控件或者使用图像列表(CImageList)来模拟。 - 通过改变项的图像索引来切换单选按钮的选中状态,同时维护一组逻辑来确保只有一个项被选中。 - 使用LVN_...

    ctrlbars.rar_工具栏

    压缩包中的www.pudn.com.txt文件可能包含有关该例子的说明、作者信息或者使用指南,建议解压后阅读以获取更多细节。通过深入研究"ctrlbars"中的代码,开发者可以学习到如何在实际项目中灵活运用这些技术,提升软件的...

    真彩位图工具栏的实现

    以下是一个详细的步骤指南,教你如何在VC++6.0中实现真彩位图工具栏: 1. **位图颜色模式**: 在Windows中,工具栏位图的颜色模式可以通过位掩码(如ILC_COLOR4, ILC_COLOR8等)来定义。ILC_COLOR4表示16色,ILC_...

    VC++实现BMP位图图形菜单

    然后,我们可以使用CImageList类创建一个图像列表,将加载的位图添加到这个列表中。 创建图形菜单的关键在于将位图与菜单项关联起来。在MFC中,我们可以通过重写OnDrawItem()函数来实现自定义绘制菜单项。在这个...

Global site tag (gtag.js) - Google Analytics