以下是 ImageList_Duplicate 函数的一般格式:
HIMAGELIST ImageList_Duplicate(
HIMAGELIST himl
);
该函数接受一个图像列表的句柄 himl 作为参数,并返回一个新的图像列表句柄,该句柄指向与原始图像列表相同的图像集合。
使用这个函数的一个典型场景是,如果你想在不同的窗口或控件中使用相同的图像集,而不希望每次都重新加载相同的图像,你可以使用 ImageList_Duplicate 创建一个副本,然后在不同的地方使用这个副本。
要使用 ImageList_Duplicate 函数,你需要包含头文件 Commctrl.h 并链接到 Comctl32.lib 库。
示例代码:
#include <Commctrl.h>
// 创建一个图像列表
HIMAGELIST hOriginalImageList = ImageList_Create(width, height, flags, initialCount, grow);
// 向图像列表中添加图像(ImageList_Add)
// 复制图像列表
HIMAGELIST hDuplicateImageList = ImageList_Duplicate(hOriginalImageList);
// 使用 hDuplicateImageList 在其他地方进行绘制或设置
// ...
// 最后记得在不需要使用图像列表时销毁它们
ImageList_Destroy(hOriginalImageList);
ImageList_Destroy(hDuplicateImageList);
这样,hDuplicateImageList 就包含了与 hOriginalImageList 相同的图像集合,你可以在程序中的其他地方使用它而不影响原始图像列表。
转载请注明出处:http://www.zyzy.cn/article/detail/24682/Win32 API/Commctrl.h/ImageList_Duplicate