Функция 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

Указатель на буфер Юникода, завершающийся нулевым значением, который содержит сведения о расположении загружаемого значка.

Если значение hinst не равно NULL, pszName указывает ресурс значка по имени или порядковой номеру. Этот порядковый номер должен быть упаковирован с помощью макроса MAKEINTRESOURCE .

Если hinst имеет значение NULL, 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 , когда вызывающему приложению требуется обеспечить высокое качество значка. Это особенно полезно в ситуациях с высокой точкой на дюйм (точек на дюйм).

Значки извлекаются или создаются следующим образом.

  1. Если в ресурсе найдено точное соответствие размеру, используется этот значок.
  2. Если точное совпадение по размеру не удается найти и доступен значок большего размера, создается новый значок путем масштабирования более крупной версии до нужного размера.
  3. Если точное совпадение по размеру не удается найти и значок большего размера отсутствует, создается новый значок путем масштабирования значка меньшего размера до нужного размера.
Здесь показаны сравнительные вызовы для LoadIconMetric и LoadIcon.
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
Header commctrl.h
Библиотека Comctl32.lib
DLL Comctl32.dll