以下是 ImageList_Create 函数的基本信息:
HIMAGELIST ImageList_Create(
int cx,
int cy,
UINT flags,
int cInitial,
int cGrow
);
参数说明:
- cx:图像的宽度。
- cy:图像的高度。
- flags:图像列表的标志,可以是以下值的组合:
- ILC_COLOR:指定图像列表使用一个颜色。
- ILC_COLOR4:指定图像列表使用 4 位色深。
- ILC_COLOR8:指定图像列表使用 8 位色深。
- ILC_COLOR16:指定图像列表使用 16 位色深。
- ILC_COLOR24:指定图像列表使用 24 位色深。
- ILC_COLOR32:指定图像列表使用 32 位色深。
- ILC_MASK:指定图像列表使用遮罩。
- ILC_MIRROR:对图像列表使用水平镜像。
- 等等,具体请参考 MSDN 文档。
- cInitial:初始图像列表中的图像数量。
- cGrow:图像列表中图像数量增长时的增量。
该函数返回一个 HIMAGELIST 句柄,表示新创建的图像列表。如果创建失败,返回值为 NULL。
以下是一个简单的示例代码,演示如何使用 ImageList_Create 函数:
#include <windows.h>
#include <commctrl.h>
int main() {
// 初始化 Common Controls
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_WIN95_CLASSES; // 或其他需要的标志
InitCommonControlsEx(&icex);
// 创建图像列表
HIMAGELIST himl = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 1, 0);
if (himl == NULL) {
MessageBox(NULL, L"ImageList creation failed!", L"Error", MB_ICONERROR);
return 1;
}
// 在这里,可以使用图像列表(himl)进行添加、绘制等操作
// 释放图像列表
ImageList_Destroy(himl);
return 0;
}
在这个例子中,使用 ImageList_Create 函数创建了一个 16x16 大小的图像列表,使用 32 位色深,并带有遮罩。然后,可以在使用完图像列表后调用 ImageList_Destroy 函数释放资源。
转载请注明出处:http://www.zyzy.cn/article/detail/24673/Win32 API/Commctrl.h/ImageList_Create