Функция LoadBitmap


Функция LoadBitmap загружает заданный ресурс растрового изображения из модуля исполняемого файла . Эта функция была заменена функцией LoadImage.

Синтаксис

HBITMAP LoadBitmap(
  HINSTANCE hInstance,  // дескриптор экземпляра приложения
  LPCTSTR lpBitmapName  // имя ресурса рисунка
);

Параметры

hInstance

[in] Дескриптор экземпляра модуля, исполняемый файл которого содержит загоужаемый точечный рисунок.

lpBitmapName

[in] Указатель на символьную строку с нулем в конце, которая содержит название ресурса загружаемого растрового изображения. Или же, этот параметр может состоять из идентификатора ресурса в младшем слове и обнуленного старшего слова. Для создания этого значения может быть использована макрокоманда MAKEINTRESOURCE.

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

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

Если функция завершается с ошибкой, возвращаемое значение -  ПУСТО (NULL).

Windows NT/2000/XP: Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

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

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

Приложение может использовать функцию LoadBitmap, чтобы обратиться к предопределенным точечным рисункам. Чтобы сделать это, приложение должно установить параметр hInstance  в значение ПУСТО (NULL), а параметр lpBitmapName  в одно из нижеперечисленных значений.

Название точечного рисунка Название точечного рисунка
OBM_BTNCORNERS OBM_OLD_RESTORE
OBM_BTSIZE OBM_OLD_RGARROW
OBM_CHECK OBM_OLD_UPARROW
OBM_CHECKBOXES OBM_OLD_ZOOM
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_OLD_CLOSE OBM_UPARROWD
OBM_OLD_DNARROW OBM_UPARROWI
OBM_OLD_LFARROW OBM_ZOOM
OBM_OLD_REDUCE OBM_ZOOMD

Названия точечных рисунков, которые начинаются с OBM_OLD, обозначают битовые образы, используемые 16-битовыми версиями Windows ранее чем 3.0.

Чтобы приложение использовало любую из OBM_ констант, константа OEMRESOURCE должна быть установлена прежде, чем включится заголовочный файл Windows.h.

Обратите внимание! на то, что то, что использование LoadBitmap для загрузки  точечных рисунков OEM крайне неправильное действие и поддерживается только для  совместимости с ранними версиями системы. Новые приложения должны использовать функцию DrawFrameControl, чтобы рисовать системные элементы.

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

Windows 95: Windows 95 не может обрабатывать исполняемые файлы, которые содержат ресурсы, размером 64 КБ или больше. Чтобы сохранить совместимость с 16-битовым Windows, эта система преобразует 32-битовую величину  в 16-битовую величину + смещение. Когда делается это преобразование, это число округляется к ближнему целому вниз, а не вверх, так что некоторые байты могут быть потеряны. Смещение, необходимое для большого ресурса может стать причиной того, что маленький ресурс будет сильно урезанным или даже полностью исключен из ресурса. Чтобы избежать этой проблемы, вычислите  коэффициент масштабирования  для наибольшего ресурса и дополните все ресурсы нулями, так чтобы каждый имел несколько коэффициентов масштабирования. Например, величина ресурса 0x100065 преобразованная в 0x8003 * 32, теряет 5 байтов. Чтобы сохранять эти 5 байтов, Вы должны дополнить ресурс  27 нулями так, чтобы он стал размером 0x100080, а затем преобразовать в 0x8004 * 32. 

Обратите внимание! на то, что, любой меньший ресурс должен также заполняться нулями, поскольку он имеет несколько коэффициентов масштабирования, который в этом случае равен 32.

Windows 95/98/Me: LoadBitmapW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Код примера

Пример смотри в статье Пример создания значков пункта меню.

Смотри также 

Обзор Точечные рисунки, Функции, используемые точечными рисунками, CreateBitmap, DeleteObject, DrawFrameControlLoadCursor LoadIcon LoadImage MAKEINTRESOURCE

Размещение и совместимость LoadBitmap

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Реализуется как версии Unicode и  ANSI для Windows 2000/XP. А также поддерживается программой Microsoft Layer for Unicode.

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz