Функция LoadImage

Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long

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

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

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор указанного изображения

Параметры

hInst
Дескриптор приложения, исполняемый модуль которого содержит загружаемый объект. Для загрузки OEM объекта данный параметр должен быть обнулен
lpsz
Определяет загружаемый объект. Если параметр hInst не обнулен и параметр fuLoad не равен LR_LOADFROMFILE, lpsz определяет ресурс объекта в определяемом hInst модуле. Если ресурс объекта загружается с помощью указания имени, то lpsz указывает на закрытую нулевым байтом строку, содержащую имя загружаемого из секции ресурсов объекта. Кроме того, данный параметр может в младшем слове содержать идентификатор ресурса, а в старшем нулевое значение. Для создания такого значения можно использовать макрос MAKEINTRESOURCE. Если параметр hInst обнулен и параметр fuLoad не равен LR_LOADFROMFILE, то lpsz определяет OEM объект. Идентификаторы OEM объектов имеют следующие префиксы
Префикс Значение
OBM_ OEM изображения
OIC_ OEM значки
OCR_ OEM курсоры
un1
Определяет тип загружаемого объекта. Этот параметр может принимать следующие значения
Значение Описание
IMAGE_BITMAP = 0 Загружается изображение
IMAGE_CURSOR Загружается курсор
IMAGE_ICON Загружается значок
n1
Определяет ширину в пикселах значка или курсора. Если этот параметр обнулен, то используется стандартный размер изображения
n2
Определяет высоту в пикселах значка или курсора. Если этот параметр обнулен, то используется стандартный размер изображения
un2
Этот параметр может быть комбинацией следующих значений
Значение Описание
LR_DEFAULTCOLOR Значение используемое по умолчанию. Нормальная загрузка изображения. Не комбинируется с LR_MONOCHROME.
LR_CREATEDIBSECTION Если в параметре un1 указано значение IMAGE_BITMAP, функция возвращает указатель на изображение, не зависящее от устройства (DIB section bitmap)
LR_DEFAULTSIZE Используются системные значения ширины и высоты для курсоров и значков, если параметры n1 или n2 обнулены
LR_LOADFROMFILE Объект загружается из файла, указанного в параметре lpsz. Если этот флаг не установлен, lpsz содержит имя ресурса
LR_LOADMAP3DCOLORS В таблице цветов объекта следующие оттенки серого заменяются на соответствующие 3-D цвета(COLOR_3DSHADOW, COLOR_3DFACE, COLOR_3DLIGHT). Не используйте этот флаг при загрузке изображения с цветностью большей, чем 8bpp
LP_LOADTRANSPARENT В таблице цветов объекта цвет первого пиксела заменяется на цвет окна по умолчанию (COLOR_WINDOW). Этот флаг используется только в объектах, имеющих соответствующие таблицы цветов. Не используйте этот флаг при загрузке изображения с цветностью большей, чем 8bpp. Если в параметре un2 указаны значения LP_LOADTRANSPARENT и LP_LOADMAP3DCOLORS, то LP_LOADTRANSPARENT имеет приоритет. Однако в таблице цветов цвет первого пиксела заменяется не на COLOR_WINDOW, а на COLOR_3DFACE
LP_MONOCHROME Объект загружается в черно-белых цветах
LP_SHARED Разрешает совместное использование идентификатора объекта, если он загружается несколько раз. Если этот флаг не установлен, следующий вызов функции LoadImage для того же объекта, загрузит его снова и вернет другой дескриптор. При использовании этого флага система удаляет ресурс, когда он больше не нужен. Не используйте этот флаг при загрузке объектов нестандартного размера, который может измениться после загрузки, а также при загрузке объекта из файла
LP_VGACOLOR Используются цвета VGA

Замечания

При завершении использования объекта, загруженного без использования флага LR_SHARED, можно освободить занимаемую им память с помощью следующих функций
Ресурс Выгружающая функция
Изображение DeleteObject
Курсор DestroyCursor
Значок DestroyIcon

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

Пример

' смотри также пример fromdll.zip

' Загрузим картинку из файла в PictureBox
Dim Buffer_hBitmap As Long
Dim Buffer As Long
myFileName = App.Path & "\Test.bmp" ' ваша картинка
Buffer = CreateCompatibleDC(0)

Buffer_hBitmap = LoadImage(ByVal 0&, myFileName, 0, 160, 160, &H10)
SelectObject Buffer, Buffer_hBitmap
StretchBlt Picture1.hdc, 0, 0, 160, 160, Buffer, 0, 0, 160, 160, SRCCOPY
' Освобождаем ресурсы
DeleteDC Buffer
DeleteObject Buffer_hBitmap

Picture1.Refresh

Смотри также

LoadBitmap, LoadCursor, LoadIcon

Категория

Графика