IImageList::ImageListSetIcon 方法 (mmc.h)
IImageList::ImageListSetIcon 方法使用户能够在图像列表中设置图标,或者创建图标(如果不存在)。
语法
HRESULT ImageListSetIcon(
[in] LONG_PTR *pIcon,
[in] long nLoc
);
parameters
[in] pIcon
一个 值,该值指定要设置的图标的 Win32 HICON 句柄。 必须将类型强制转换为指向LONG_PTR的指针。 管理单元拥有此资源,完成后必须释放它。 如果管理单元未释放 Icon,则会发生资源内存泄漏。
[in] nLoc
一个 值,该值指定分配给条目的索引。 这是在内部映射到实际索引的虚拟索引。
返回值
此方法可以返回其中一个值。
注解
如果以前使用 过 nLoc 指定的索引, 则 ImageListSetIcon 将替换存储在 nLoc 中的图标。 如果以前未使用过,则会在映像列表中添加新条目。 要插入的图标必须同时定义 32x32 和 16x16 像素大小。
有选择地更改图像列表中的小图标或大图标
在 MMC 1.2 中,引入了两个新宏,以支持仅更改图像列表中的小图标或大图标。 这两个宏(ILSI_LARGE_ICON和ILSI_SMALL_ICON)将应用于 ImageListSetIcon 的 nLoc 参数。ILSI_LARGE_ICON宏用于仅更改 nLoc 处的大图标。 ILSI_SMALL_ICON宏用于仅更改 nLoc 处的小图标。
若要设置不同的大图标和小图标,可以使用两个宏之一。 以下代码示例演示这些宏。
代码片段 1
pImageList->ImageListSetIcon((LONG_PTR*) hLargeIcon, nLoc); // set both
pImageList->ImageListSetIcon((LONG_PTR*) hSmallIcon, ILSI_SMALL_ICON (nLoc)); // change small
代码片段 2
pImageList->ImageListSetIcon((LONG_PTR*) hSmallIcon, nLoc); // set both
pImageList->ImageListSetIcon((LONG_PTR*) hLargeIcon, ILSI_LARGE_ICON (nLoc)); // change large
在使用 ILSI_LARGE_ICON 或 ILSI_SMALL_ICON 之前,管理单元必须先在 nLoc 处插入图像。 如果使用 ILSI_LARGE_ICON 或 ILSI_SMALL_ICON 宏,并且 nLoc 未引用现有图像,则 ImageListSetIcon 方法将失败。
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | mmc.h |
DLL | Mmcndmgr.dll |