Функция 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
Категория
Графика