1.综述
在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。
图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由大图标或位图构成,其中包含位图模式。实际上,所有的在同一个图象列表中的图标都被存储在一个屏幕设备的位图中。
2.添加图像的两种方法
通常可以向CImageList对象中添加位图和图标资源。其资源可以是程序中资源文件中的资源,也可以直接从外部文件调入。
(1)从程序中资源文件中添加图标和位图图像如下所示(通常这是最为简单直观的方法):
//创建一个CImageList类的指针变量
CImageList* pImageList;
pImageList =newCImageList();
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)将当前图像列表设置为引用图像源。
分享到:
相关推荐
首先,需要创建一个 CImagelist 类的指针变量,然后使用 Create 方法初始化图像列表。接着,可以使用 Add 方法添加图标和位图资源。例如: CImageList* pImageList; pImageList = new CImageList(); pImageList->...
在本文中,我们将深入探讨如何使用VC++、GDI+和CImageList库来创建一个能够浏览常用图像格式(如PNG和JPG)的图片浏览器。这个项目是基于VS2008开发环境并在Windows 7操作系统上运行的。通过理解并应用以下知识点,...
2. **创建`CImageList`**:使用`CImageList`的构造函数创建一个新实例,传递位图的大小和颜色深度。例如,`CImageList imageList( cx, cy, ILC_COLOR32 | ILC_MASK, 0, 1 )`,其中`cx`和`cy`是位图的宽度和高度,`...
在标题"‘CListCtrl的图片格式 关联CImageList,显示缩略图"中,我们关注的是如何使用CListCtrl显示图片,特别是缩略图。首先,我们需要创建一个CImageList对象,并加载或创建要显示的图像。这可以通过调用...
本主题将深入探讨如何使用CImageList类在VC++应用中实现类似GIF动画的效果。CImageList是MFC(Microsoft Foundation Classes)库中的一个关键组件,它允许程序员高效地管理和操作图像列表。 CImageList类主要用于...
`CImageList` 是一个基于 GDI(Graphics Device Interface)对象 `IMAGEINFO` 的类,它允许程序员在一个列表中存储多个位图,并且这些位图可以被控件如树视图、列表视图或自定义控件使用。`CImageList` 提供了一种...
通过使用CImageList,开发者可以轻松地改变控件的视觉外观,如改变节点的图标,这在处理大量数据时尤其有用。CImageList还可以节省内存,因为它可以存储多态图像,而无需为每个状态创建单独的图像资源。 **数据显示...
标题"使用CImageList拖动时克服窗口闪烁"涉及的关键知识点是关于优化Windows应用程序的视觉效果,特别是当涉及到CImageList类和拖放操作时。CImageList是MFC提供的一种用于存储和管理图标、位图等图像资源的类,而在...
在本案例中,我们关注的是如何使用CImageList来在菜单上动态显示位图,这为应用程序的用户界面增加了视觉吸引力和交互性。 标题“BmpMenu.rar_Cimagelist_mfc位图显示”暗示了我们将探讨如何创建一个名为“BmpMenu...
CImageList控件通常与其他控件如列表视图(CListCtrl)、树视图(CTreeCtrl)和标签控件(CTabCtrl)结合使用,以增强界面的视觉效果和用户体验。 1. **在列表控制中的应用**: - `CListCtrl::SetImageList`用于...
通过这种方式,"范例双缓冲之超级打酱油"不仅展示了如何使用CImageList来处理BMP动画,还演示了如何利用双缓冲技术提高用户体验,创造出平滑、无闪烁的动画效果,这对于开发游戏、动态GUI或其他需要动态视觉元素的...
本实验中,Ex_Form 是用表达视图来进行学术的课程成绩管理的一个简单例 程。同时,为了能用列表视图来显示学生的课程成绩,还添加了“多视图的切换” ...文档和文件夹的本地查找以及 CImageList 类的使用等。
使用`CImageList::Add`或`CImageList::LoadBitmap`方法加载位图文件。假设我们有一个名为`bmp_menu.bmp`的位图文件,加载过程如下: ```cpp HBITMAP hBitmap = AfxGetApp()->LoadBitmap(IDB_BMP_MENU); // IDB_...
### CListCtrl的使用完全指南 #### 概述 `CListCtrl`是Microsoft Foundation Class (MFC)库中的一个类,它代表了一个列表控件(`ListView`控件),可以用来显示一系列条目,每个条目又可以包含多个子项。`...
在MFC(Microsoft Foundation Classes)框架中,使用`CImageList`类可以处理图像列表,包括GIF格式的动画图像。`CImageList`是MFC提供的一种强大的工具,它允许程序员在一个对象中存储和管理多个图像,并可以方便地...
本篇文章将深入探讨如何在CListCtrl中显示任意图片,通过结合使用CImageList类来实现这一功能。 首先,我们需要了解CListCtrl的基本用法。CListCtrl是一个视图类,它继承自CWnd,用于创建一个包含多列和多行的列表...
CImageList的使用方法包括创建、加载图标、关联到BCMenu以及设置特定菜单项的图标等步骤。 动态创建菜单意味着在程序运行时,而不是在编译时创建菜单。这通常用于根据用户输入或应用程序状态来调整菜单项。例如,当...
2. **添加图标**:使用`CImageList::Add`或`CImageList::Insert`函数将图标添加到图像列表中。图标可以从资源文件、位图文件或其他地方获取。 3. **创建BCMenu对象**:创建一个`CBCMenu`对象,它是`BCMenu`库中的...