以下是 ImageList_AddMasked 函数的基本信息:
int ImageList_AddMasked(
HIMAGELIST himl,
HBITMAP hbmImage,
COLORREF crMask
);
参数说明:
- himl:图像列表的句柄。
- hbmImage:包含图像的位图句柄。
- crMask:指定在图像中表示透明部分的颜色。
该函数返回一个整数值,表示添加的图像的索引。如果失败,返回值为-1。
下面是一个简单的示例代码,演示如何使用 ImageList_AddMasked 函数:
#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);
// 加载位图资源
HBITMAP hBitmap = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_SAMPLE));
// 添加图像到图像列表(使用颜色值RGB(255, 0, 255)作为透明颜色)
int index = ImageList_AddMasked(himl, hBitmap, RGB(255, 0, 255));
// 如果成功添加图像,可以在使用后销毁位图资源
if (index != -1) {
DeleteObject(hBitmap);
}
// 在这里,可以使用图像列表(himl)进行绘制等操作
// 释放图像列表
ImageList_Destroy(himl);
return 0;
}
在这个例子中,首先创建了一个图像列表,然后使用 LoadBitmap 函数加载一个位图资源。接着,调用 ImageList_AddMasked 函数将位图添加到图像列表中,并指定 RGB(255, 0, 255) 作为透明颜色。最后,可以在使用完图像列表后调用 ImageList_Destroy 函数释放资源。
转载请注明出处:http://www.zyzy.cn/article/detail/24671/Win32 API/Commctrl.h/ImageList_AddMasked