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 для получения кода ошибки). В успешном случае функция возвращает дескриптор указанного изображения
Префикс | Значение |
OBM_ | OEM изображения |
OIC_ | OEM значки |
OCR_ | OEM курсоры |
Значение | Описание |
IMAGE_BITMAP = 0 | Загружается изображение |
IMAGE_CURSOR | Загружается курсор |
IMAGE_ICON | Загружается значок |
Значение | Описание |
---|---|
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