Функция LoadBitmap

Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, _
    ByVal lpBitmapName As String) As Long

LoadBitmap загружает указанное изображение из секции ресурсов исполняемого файла или загружает встроенный системный растр. Приложение обязано использовать функцию DeleteObject для удаления всех изображений, дескрипторы которых были получены при помощи LoadBitmap, даже если они являются системными растрами. Функция LoadBitmap создает в памяти изображение, которое можно выводить на экран, но нельзя выводить на принтер. Для загрузки изображения, которое вы сможете выводить на принтер необходимо использовать функцию LoadImage и указать флаг LR_CREATEDIBSECTION для создания DIB-секции. DIB-секцию можно выводить на любое устройство отображения. Данная функция замещена функцией LoadImage

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

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

Параметры

hInstance
Дескриптор приложения, исполняемый модуль которого содержит загружаемое изображение
lpBitmapName
Строка с завершающим нулевым символом, содержащая имя загружаемого из секции ресурсов изображения. Можно, в качестве альтернативы использовать идентификатор загружаемого ресурса или константу одного из встроенных системных растров(в этом случае нужно передать функции параметр типа Long, а параметр hInstance должен быть равен нулю. Смотри пример). В случае, если изображения, указанного в параметре lpBitmapName не существует, или недостаточно памяти для его загрузки, функция завершается с ошибкой
Константы для системных растров
OBM_BTNCORNERS OBM_BTSIZE
OBM_CHECK

OBM_CHECKBOXES

OBM_CLOSE OBM_REDUCE
OBM_COMBO OBM_REDUCED
OBM_DNARROW OBM_RESTORE
OBM_DNARROWD OBM_RESTORED
OBM_DNARROWI OBM_RGARROW
OBM_LFARROW OBM_RGARROWD
OBM_LFARROWD OBM_RGARROWI
OBM_LFARROWI OBM_SIZE
OBM_MNARROW OBM_UPARROW
OBM_UPARROWD OBM_UPARROWI
OBM_ZOOM OBM_ZOOMD

Пример

' Отобразим системный растр кнопки Восстановить,
' используемый на заголовке формы
Dim bm As BITMAP
Dim mem_bm As Long
Dim mem_dc As Long
Dim orig_bm As Long
' Создаем контекст устройства,
' совместимый с графическим полем
mem_dc = CreateCompatibleDC(hdc)
' Загружаем растр
mem_bm = LoadBitmap(0, OBM_RESTORE)
' Создаем контекст устройства для приема картинки
orig_bm = SelectObject(mem_dc, mem_bm)
        
' Получаем высоту и ширину растра
GetObjectAPI mem_bm, Len(bm), bm
' Копируем картинку в графическое поле
BitBlt Picture1.hdc, _
0, 0, bm.bmWidth, bm.bmHeight, _
mem_dc, 0, 0, vbSrcCopy
' Восстанавливаем старый растр
SelectObject mem_dc, orig_bm
' И удаляем созданный растр
' Удаление не уничтожает системный растр,
' а лишь освобождает ресурсы компьютера
DeleteObject mem_bm

Смотри также

CreateBitmap

Категория

Графика