Функция 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, DrawFrameControl, LoadCursor, 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. |
Замечания по платформе |
Не имеется |