Функция 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
Требуемая метрика. Одно из следующих значений:
Значение | Значение |
---|---|
|
Соответствует SM_CXSMICON, рекомендуемой ширине пикселей небольшого значка. |
|
Соответствует SM_CXICON ширине значка в пикселях по умолчанию. |
[out] phico
Тип: HICON*
При возврате этой функции содержит указатель на дескриптор загруженного значка.
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK в случае успешного выполнения, в противном случае — ошибку, включая следующее значение.
Код возврата | Описание |
---|---|
|
Содержимое буфера, на которое указывает pszName , не соответствует ни одной из ожидаемых интерпретаций. |
Комментарии
LoadIconMetric похожа на LoadIcon, но с возможностью указать метрику значка. Он используется вместо 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 |