LoadIconMetric 函数 (commctrl.h)

加载具有客户端指定的系统指标的指定图标资源。

语法

HRESULT LoadIconMetric(
  [in]  HINSTANCE hinst,
  [in]  PCWSTR    pszName,
  [in]  int       lims,
  [out] HICON     *phico
);

参数

[in] hinst

类型: HINSTANCE

DLL 或可执行文件 (.exe) 包含要加载的图标的模块的句柄。 有关详细信息,请参阅 GetModuleHandle

若要加载预定义的系统图标或独立图标文件,请将此参数设置为 NULL

[in] pszName

类型: PCWSTR

指向以 null 结尾的 Unicode 缓冲区的指针,该缓冲区包含有关要加载的图标的位置信息。

如果 hinst 为非 NULL则 pszName 按名称或序号指定图标资源。 必须使用 MAKEINTRESOURCE 宏打包此序号。

如果 hinstNULL,pszName 将指定要加载的预定义系统图标的IDI_前缀) 的标识符 (

[in] lims

类型: int

所需的指标。 以下值之一:

“值” 含义
LIM_SMALL
对应于 SM_CXSMICON,即小图标的建议像素宽度。
LIM_LARGE
对应于图标的默认像素宽度 SM_CXICON

[out] phico

类型: HICON*

当此函数返回时,包含指向已加载图标句柄的指针。

返回值

类型: HRESULT

如果成功,则返回S_OK,否则返回错误,包括以下值。

返回代码 说明
E_INVALIDARG
pszName 指向的缓冲区的内容不适合任何预期的解释。

注解

LoadIconMetric 类似于 LoadIcon,但具有指定图标指标的功能。 当调用应用程序希望确保高质量图标时,它用于代替 LoadIcon 。 这在每英寸高点数 (dpi) 情况下特别有用。

按如下所示提取或创建图标。

  1. 如果在资源中找到完全匹配的大小,则使用该图标。
  2. 如果找不到确切的大小匹配项,并且有更大的图标可用,则会通过将较大版本缩减到所需大小来创建一个新图标。
  3. 如果找不到确切的大小匹配项,并且没有较大的图标可用,则会通过将较小的图标纵向扩展到所需大小来创建一个新图标。
此处显示了 LoadIconMetricLoadIcon 的比较调用。
NOTIFYICONDATA  nidIconData  = {0};
nidIconData.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));

// Or...

HRESULT hr = LoadIconMetric(hInstance, MAKEINTRESOURCE(IDI_ICON), LIM_SMALL, &nidIconData.hIcon);

应用程序负责在检索到的图标上调用 DestroyIcon

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 commctrl.h
Library Comctl32.lib
DLL Comctl32.dll