Функция LoadImage


Функция LoadImage загружает значок, курсор, "живой " курсор или точечный рисунок.

Синтаксис 

HANDLE LoadImage(
    HINSTANCE hinst,
    LPCTSTR lpszName,
    UINT uType,
    int cxDesired,
    int cyDesired,
    UINT fuLoad
);

Параметры

hinst

[in] Дескриптор экземпляра модуля, который содержит загружаемое изображение. Чтобы загрузить OEM изображение, установите этот параметр в нуль.

lpszName

[in] Устанавливает загружаемое изображение. Если параметр hinst - не ПУСТО (NULL), а параметр fuLoad не включает LR_LOADFROMFILE, параметр lpszName устанавливает ресурс изображения в модуле hinst. Если ресурс изображения загружается по имени,  параметр lpszName - указатель на символьную строку с нулем в конце, которая содержит имя ресурса изображения. Если ресурс изображения загружается по порядковому номеру, используя макрос MAKEINTRESOURCE, то порядковый номер изображения преобразуется в форму, которая может быть передана в функцию LoadImage.

Если параметр hinst - ПУСТО (NULL), а параметр fuLoad не включает значение LR_LOADFROMFILE, lpszName устанавливает загружаемое OEM изображение. Идентификаторы OEM изображения определены в Winuser.h и имеют нижеследующие префиксы.

OBM_ OEM точечные рисунки 
OIC_ OEM значки
OCR_ OEM курсоры

Чтобы передать эти константы в функцию LoadImage, используйте макрос MAKEINTRESOURCE. Например, чтобы загрузить курсор OCR_NORMAL, передайте MAKEINTRESOURCE (OCR_NORMAL) как параметр lpszName и ПУСТО (NULL) как параметр hinst.

Если параметр fuLoad включает значение LR_LOADFROMFILE, lpszName - имя файла, который содержит изображение.

uType

[in] Устанавливает тип загружаемого изображения. Этим параметром может быть одно из ниже перечисленных значений.
Значение Предназначение
IMAGE_BITMAP Загружает точечный рисунок
IMAGE_CURSOR Загружает курсор
IMAGE_ICON Загружает значок

cxDesired

[in] Устанавливает ширину значка или курсора, в пикселях. Если этот параметр равняется нулю, а параметр fuLoad - LR_DEFAULTSIZE, функция, чтобы установить ширину, использует системное значение размера SM_CXICON или SM_CXCURSOR. Если этот параметр равняется нулю и LR_DEFAULTSIZE не используется, функция использует фактическую ширину ресурса.

cyDesired

[in] Устанавливает высоту значка или курсора, в пикселях. Если этот параметр равняется нулю, а параметр fuLoad - LR_DEFAULTSIZE, функция, чтобы установить высоту, использует системное значение размера SM_CYICON или SM_CYCURSOR. Если этот параметр равняется нулю и LR_DEFAULTSIZE не используется, функция использует фактическую высоту ресурса.

fuLoad

[in] Этот параметр может состоять из одного или нескольких нижеследующих значений.
Значение Предназначение
LR_DEFAULTCOLOR Задаваемый по умолчанию флажок; он ничего не делает. Все, что это означает - это "не LR_MONOCHROME".
LR_CREATEDIBSECTION Когда параметр uType устанавливает IMAGE_BITMAP, то заставляет функцию возвращать точечный рисунок DIB секции, а не совместимый точечный рисунок. Этот флажок полезен чтобы загрузить точечный рисунок без отображения его в цвете  устройства вывода на экран.
LR_DEFAULTSIZE Использует ширину или высоту, определенную системными значениями размеров для курсоров или значков, если параметры cxDesired или cyDesired устанавливаются в нуль. Если этот флажок не определен, а cxDesired и cyDesired установлены в нуль, функция использует фактический размер ресурса. Если ресурс содержит несколько изображений, функция использует размер первого изображения.
LR_LOADFROMFILE
Загружает изображение из файла, указанного параметром lpszName. Если этот флажок не определен, lpszName - имя ресурса.
LR_LOADMAP3DCOLORS
Ищет таблицу цветов изображения и заменяет нижеследующие оттенки серого  соответствующим трехмерным цветом:
 
Цвет Замена
Темно-серый, RGB
(128,128,128)
COLOR_3DSHADOW
Серый,RGB
(192,192,192)
COLOR_3DFACE
Светло-серый
RGB(223,223,223)
COLOR_3DLIGHT

Не используйте этот параметр, если Вы загружаете точечный рисунок с глубиной цвета больше чем 8 bpp (битов на пиксель).

LR_LOADTRANSPARENT
Извлекает код цвета первого пикселя в изображении и заменяет соответствующую запись в таблице цветов с заданным по умолчанию цветом окна (COLOR_WINDOW). Все пиксели в изображении, которые используют эту запись, становятся заданным по умолчанию цветом окна. Это значение применяется только к изображениям, которые имеют соответствующие таблицы цветов.

Не используйте этот параметр, если Вы загружаете точечный рисунок с глубиной цвета больше чем 8 bpp (битов на пиксель).

Если параметр fuLoad включает в себя значения и LR_LOADTRANSPARENT, и LR_LOADMAP3DCOLORS, то LR_LOADTRANSPARENT имеет приоритет. Однако, запись таблицы цветов заменяется на COLOR_3DFACE, а не COLOR_WINDOW.
LR_MONOCHROME
Загружает изображение в черно-белом цвете.
LR_SHARED
Совместно использует дескриптор изображения, если изображение загружено несколько раз. Если LR_SHARED не установлен, второй вызов функции LoadImage для одного и того же ресурса загрузит изображение снова и возвратит другой дескриптор.

Когда Вы используете этот флажок, система уничтожает ресурс, когда он больше не нужен.

Не используйте LR_SHARED для изображений, которые имеют нестандартные размеры, которые могут измениться после загрузки, или которые загружаются из файла.

При загрузке системного значка или курсора, Вы должны использовать флажок LR_SHARED, или функция будет не в состоянии загрузить ресурс.

Windows 95/98/Me: функция находит первое изображение с затребованным именем ресурса в кэше, независимо от затребованного размера.

LR_VGACOLOR Используются истинные VGA цвета.

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

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

Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

Замечания

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

 

Ресурс Функция освобождения
Точечный рисунок DeleteObject
Курсор DestroyCursor
Значок DestroyIcon

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

Пример

Пример, см. в статье Создание значка.

Смотри также 

Обзор Ресурсы, Функции, используемые ресурсами, CopyImage,  GetSystemMetrics,  LoadBitmapLoadCursorLoadIcon

Размещение и совместимость LoadImage

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 4.0 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Userl32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz