Поделиться через


Функция LookupIconIdFromDirectoryEx (winuser.h)

Выполняет поиск значка (RT_GROUP_ICON) или курсора (RT_GROUP_CURSOR) на наличие значка или курсора, наиболее подходящего для текущего устройства отображения.

Если в группе ресурсов существует несколько образов, этот метод использует следующие условия для выбора образа:

  • Выбрано ближайшее изображение, но не превышающее запрошенный размер.
  • При наличии двух или более изображений этого размера выбирается изображение, соответствующее глубине цвета дисплея.
  • Если ни одно изображение не соответствует глубине цвета дисплея, выбирается изображение с наибольшей глубиной цвета, которая не превышает глубину цвета дисплея. Если все они превышают глубину цвета, выбирается один с наименьшей глубиной цвета.

Синтаксис

int LookupIconIdFromDirectoryEx(
  [in] PBYTE presbits,
  [in] BOOL  fIcon,
  [in] int   cxDesired,
  [in] int   cyDesired,
  [in] UINT  Flags
);

Параметры

[in] presbits

Тип: PBYTE

Значок или данные каталога курсора. Так как эта функция не проверяет данные ресурса, она вызывает сбой общей защиты (GP) или возвращает неопределенное значение, если presbits не указывает на допустимые данные ресурса.

[in] fIcon

Тип: BOOL

Указывает, ищется ли значок или курсор. Если этот параметр имеет значение TRUE, функция ищет значок; Если параметр имеет значение FALSE, функция ищет курсор.

[in] cxDesired

Тип: int

Требуемая ширина значка (в пикселях). Если этот параметр равен нулю, функция использует значение системной метрики SM_CXICON или SM_CXCURSOR .

[in] cyDesired

Тип: int

Требуемая высота значка (в пикселях). Если этот параметр равен нулю, функция использует значение SM_CYICON или SM_CYCURSOR системной метрики.

[in] Flags

Тип: UINT

Сочетание следующих значений.

Значение Значение
LR_DEFAULTCOLOR
0x00000000
Использует формат цвета по умолчанию.
LR_MONOCHROME
0x00000001
Создает монохромный значок или курсор.

Возвращаемое значение

Тип: int

Если функция выполняется успешно, возвращаемое значение представляет собой целочисленный идентификатор ресурса для значка (RT_ICON) или курсора (RT_CURSOR), который лучше всего подходит для текущего устройства отображения.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Файл ресурсов типа RT_GROUP_ICON (RT_GROUP_CURSOR указывает на курсоры) содержит данные значка (или курсора) в нескольких форматах, зависящих от устройств и устройств. LookupIconIdFromDirectoryEx выполняет поиск в файле ресурсов значка (или курсора), наиболее подходящего для текущего устройства отображения, и возвращает его целочисленный идентификатор. Функции FindResource и FindResourceEx используют макрос MAKEINTRESOURCE с этим идентификатором для поиска ресурса в модуле.

Каталог значков загружается из файла ресурсов с типом ресурса RT_GROUP_ICON (или RT_GROUP_CURSOR для курсоров) и целочисленным именем ресурса для конкретного значка (RT_ICON) или курсора (RT_CURSOR) для загрузки. Функции LoadResource и CreateIconFromResourceEx можно использовать для создания соответствующего значка или курсора.

Функции LoadIcon, LoadImage и LoadCursor используют эту функцию для поиска значка или курсора, наиболее подходящего для текущего устройства отображения, в указанных данных ресурса. LoadIconWithScaleDown использует альтернативные критерии поиска для оптимального соответствия.

Примеры

Пример см. в разделе Общий доступ к ресурсам значка.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

CreateIconFromResourceEx

CreateIconIndirect

FindResource

FindResourceEx

GetIconInfo

Значки

LoadCursor

LoadIcon

LoadImage

LookupIconIdFromDirectory

MAKEINTRESOURCE

Справочные материалы