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)将应用于 ImageListSetIconnLoc 参数。

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

另请参阅

IImageList