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


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

Загружает значок, курсор, анимированный курсор или растровое изображение.

Синтаксис

HANDLE LoadImageA(
  [in, optional] HINSTANCE hInst,
  [in]           LPCSTR    name,
  [in]           UINT      type,
  [in]           int       cx,
  [in]           int       cy,
  [in]           UINT      fuLoad
);

Параметры

[in, optional] hInst

Тип: HINSTANCE

Дескриптор модуля библиотеки DLL или исполняемого файла (.exe), который содержит загруженный образ. Дополнительные сведения см. в GetModuleHandle. Обратите внимание, что с 32-разрядной версией Windows дескриптор экземпляра (HINSTANCE), например экземпляр приложения, который обрабатывается вызовом системной функции WinMain, а дескриптор модуля (HMODULE) совпадает.

Чтобы загрузить предварительно определенное изображение или автономный ресурс (значок, курсор или растровый файл), задайте для этого параметра значение NULL.

[in] name

Тип: LPCTSTR

Загруженный образ.

Если параметр hInst неNULL, а параметр fuLoadLR_LOADFROMFILE, имя указывает ресурс образа в модуле hInst.

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

Если ресурс изображения должен быть загружен порядком из модуля, используйте макрос MAKEINTRESOURCE для преобразования порядкового номера изображения в форму, которую можно передать в функцию loadImage LoadImage.

Если параметр hInst имеет значение NULL, а параметр fuLoad пропускает значение LR_LOADFROMFILE и включает LR_SHARED, имя указывает предварительно определенное изображение для загрузки.

Стандартные идентификаторы изображений определены в Winuser.h и имеют следующие префиксы:

Приставка Значение
OBM_ Растровые изображения OEM. Используйте макрос MAKEINTRESOURCE для передачи этих данных.
OIC_ Значки OEM. Используйте макрос MAKEINTRESOURCE для передачи этих данных.
OCR_ Курсоры OEM. Используйте макрос MAKEINTRESOURCE для передачи этих данных.
IDI_ стандартные значки
IDC_ курсоров уровня "Стандартный"

Чтобы передать константы идентификаторов образов OEM в функцию LoadImage , используйте макрос MAKEINTRESOURCE. Например, чтобы загрузить курсор OCR_NORMAL, передайте в качестве параметра имени , NULL в качестве параметра hInst и LR_SHARED в качестве одного из флагов в параметр fuLoad.

Если параметр hInstNULL, а параметр fuLoad включает значение LR_LOADFROMFILE, имя — это имя файла, содержащего автономный ресурс (значок, курсор или файл растрового изображения), например c:\myicon.ico.

Дополнительные сведения см. в разделе "Примечания" ниже.

[in] type

Тип: UINT

Тип загруженного изображения.

Этот параметр может быть одним из следующих значений:

Ценность Значение
IMAGE_BITMAP Загружает растровое изображение.
IMAGE_CURSOR Загружает курсор.
IMAGE_ICON Загружает значок.

[in] cx

Тип: int

Ширина в пикселях значка или курсора. Если этот параметр равен нулю, а параметр fuLoad LR_DEFAULTSIZE, функция использует значение SM_CXICON или SM_CXCURSOR системной метрики для задания ширины. Если этот параметр равен нулю и LR_DEFAULTSIZE не используется, функция использует фактическую ширину ресурса.

[in] cy

Тип: int

Высота значка или курсора в пикселях. Если этот параметр равен нулю, а параметр fuLoad LR_DEFAULTSIZE, функция использует значение SM_CYICON или SM_CYCURSOR системной метрики для задания высоты. Если этот параметр равен нулю и LR_DEFAULTSIZE не используется, функция использует фактическую высоту ресурса.

[in] fuLoad

Тип: UINT

Этот параметр может быть одним или несколькими из следующих значений.

Ценность Значение
LR_CREATEDIBSECTION
0x00002000
Если параметр uType указывает IMAGE_BITMAP, функция возвращает растровое изображение раздела DIB, а не совместимое растровое изображение. Этот флаг полезен для загрузки растрового изображения, не сопоставляя его с цветами устройства отображения.
LR_DEFAULTCOLOR
0x00000000
Флаг по умолчанию; это ничего не делает. Все это означает " не LR_MONOCHROME".
LR_DEFAULTSIZE
0x00000040
Использует ширину или высоту, указанную значениями системных метрик для курсоров или значков, если для значений cxDesired или cyDesired задано равно нулю. Если этот флаг не указан и cxDesired и cyDesired задано равно нулю, функция использует фактический размер ресурса. Если ресурс содержит несколько изображений, функция использует размер первого изображения.
LR_LOADFROMFILE
0x00000010
Загружает автономный образ из файла, указанного имени (значок, курсор или растровый файл).
LR_LOADMAP3DCOLORS
0x00001000
Выполняет поиск таблицы цветов для изображения и заменяет следующие оттенки серого на соответствующий 3-D цвет.
  • Dk Gray, RGB(128,128,128) с COLOR_3DSHADOW
  • Серый, RGB(192,192,192) с COLOR_3DFACE
  • Lt Gray, RGB(223,223,223) с COLOR_3DLIGHT
Не используйте этот параметр, если вы загружаете растровое изображение с глубиной цвета больше 8bpp.
LR_LOADTRANSPARENT
0x00000020
Извлекает значение цвета первого пикселя в изображении и заменяет соответствующую запись в таблице цветов цветом по умолчанию (COLOR_WINDOW). Все пиксели на изображении, использующее эту запись, становятся цветом окна по умолчанию. Это значение применяется только к изображениям с соответствующими таблицами цветов.

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

Если fuLoad включает значения LR_LOADTRANSPARENT и LR_LOADMAP3DCOLORS, LR_LOADTRANSPARENT имеет приоритет. Однако запись таблицы цветов заменена COLOR_3DFACE, а не COLOR_WINDOW.

LR_MONOCHROME
0x00000001
Загружает изображение в черно-белом виде.
LR_SHARED
0x00008000
Предоставляет общий доступ к дескриптору изображения, если изображение загружается несколько раз. Если LR_SHARED не задано, второй вызов LoadImage для того же ресурса снова загружает образ и возвращает другой дескриптор.

При использовании этого флага система уничтожит ресурс, если он больше не нужен.

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

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

Эта функция находит первое изображение в кэше с запрошенным именем ресурса независимо от запрошенного размера.

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

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

Тип: HANDLE

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

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

Замечания

Если IS_INTRESOURCE(имя) true, то имя указывает целый идентификатор заданного ресурса. В противном случае это указатель на строку, завершаемую значением NULL. Если первый символ строки является знаком фунта (#), остальные символы представляют десятичное число, указывающее целочисленный идентификатор ресурса. Например, строка "#258" представляет идентификатор 258.

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

Ресурс Функция выпуска
Точечный рисунок DeleteObject
Курсор DestroyCursor
Икона DestroyIcon
 

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

Примеры

Пример см. в разделе Использование классов окон.

Заметка

Заголовок winuser.h определяет LoadImage как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll
набор API ext-ms-win-ntuser-gui-l1-1-0 (представлено в Windows 8)

См. также

концептуальные

CopyImage

GetSystemMetrics

LoadBitmap

LoadCursor

LoadIcon

другие ресурсы

Справочник

ресурсов