Класс CBitmap
Инкапсулирует растровое изображение интерфейса графических устройств Windows (GDI) и предоставляет функции-члены для манипулирования этим растровым изображением.
Синтаксис
class CBitmap : public CGdiObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CBitmap::CBitmap |
Формирует объект CBitmap . |
Открытые методы
Имя | Описание |
---|---|
CBitmap::CreateBitmap |
Инициализирует объект с растровым изображением памяти, зависящим от устройства, с указанной шириной, высотой и битовым шаблоном. |
CBitmap::CreateBitmapIndirect |
Инициализирует объект с растровым изображением с шириной, высотой и битовым шаблоном (если он указан) в BITMAP структуре. |
CBitmap::CreateCompatibleBitmap |
Инициализирует объект с растровым изображением, чтобы он был совместим с указанным устройством. |
CBitmap::CreateDiscardableBitmap |
Инициализирует объект с отбрасываемым растровым изображением, совместимым с указанным устройством. |
CBitmap::FromHandle |
Возвращает указатель на CBitmap объект при указании дескриптора растрового изображения Windows HBITMAP . |
CBitmap::GetBitmap |
Заполняет структуру BITMAP сведениями о растровом рисунке. |
CBitmap::GetBitmapBits |
Копирует биты указанного растрового изображения в указанный буфер. |
CBitmap::GetBitmapDimension |
Возвращает ширину и высоту растрового изображения. Предполагается, что высота и ширина заданы ранее SetBitmapDimension функцией-членом. |
CBitmap::LoadBitmap |
Инициализирует объект, загружая именованный ресурс растрового изображения из исполняемого файла приложения и присоединяя растровое изображение к объекту. |
CBitmap::LoadMappedBitmap |
Загружает растровое изображение и сопоставляет цвета с текущими системными цветами. |
CBitmap::LoadOEMBitmap |
Инициализирует объект, загружая предопределенное растровое изображение Windows и присоединяя растровое изображение к объекту. |
CBitmap::SetBitmapBits |
Задает биты растрового изображения указанным битовым значениям. |
CBitmap::SetBitmapDimension |
Назначает ширину и высоту растровой диаграмме в единицах 0,1 миллиметра. |
Открытые операторы
Имя | Описание |
---|---|
CBitmap::operator HBITMAP |
Возвращает дескриптор Windows, подключенный к объекту CBitmap . |
Замечания
Чтобы использовать CBitmap
объект, создайте объект, вложите к нему дескриптор растрового изображения с помощью одной из функций члена инициализации, а затем вызовите функции-член объекта.
Дополнительные сведения об использовании графических объектов, таких как CBitmap
, см. в разделе "Графические объекты".
Иерархия наследования
CBitmap
Требования
Заголовок: afxwin.h
CBitmap::CBitmap
Формирует объект CBitmap
.
CBitmap();
Замечания
Результирующий объект должен быть инициализирован с помощью одной из функций элемента инициализации.
CBitmap::CreateBitmap
Инициализируется аппаратно зависимая битовая карта памяти, имеющая заданную ширину, высоту и битовый шаблон.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
Параметры
nWidth
Задается ширина (в пикселях) битовой карты.
nHeight
Задается высота (в пикселях) битовой карты.
nPlanes
Задается число цветовых плоскостей в битовой карте.
nBitcount
Задается число цветовых битов на пиксель отображения.
lpBits
Указывается массив байтов, содержащий исходные значения битов битовой карты. Если это NULL
так, новое растровое изображение остается неинициализируемым.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Для цветовой битовой карты один из параметров ( nPlanes
или nBitcount
) необходимо установить в значение 1. Если оба этих параметра имеют значение 1, CreateBitmap
создает монохромную битовую карту.
Хотя растровое изображение не может быть выбрано непосредственно для устройства отображения, его можно выбрать в качестве текущей растровой карты для контекста "памяти устройства" с помощью CDC::SelectObject
любого совместимого контекста устройства с помощью CDC::BitBlt
функции.
После завершения работы с объектом CBitmap
, созданным функцией CreateBitmap
, сначала выберите битовую карту из контекста устройства, а затем удалите объект CBitmap
.
Дополнительные сведения см. в описании bmBits
поля в BITMAP
структуре. Структура BITMAP
описана в функции-члене CBitmap::CreateBitmapIndirect
.
CBitmap::CreateBitmapIndirect
Инициализирует растровое изображение с шириной, высотой и битовым шаблоном (если указано) в структуре, на которую указывает.lpBitmap
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
Параметры
lpBitmap
Указывает на BITMAP
структуру, содержащую сведения о растровом рисунке.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Хотя растровое изображение не может быть выбрано непосредственно для устройства отображения, его можно выбрать в качестве текущего растрового изображения для контекста устройства памяти с помощью CDC::SelectObject
любого совместимого контекста устройства с помощью CDC::BitBlt
или CDC::StretchBlt
функции. (Функция CDC::PatBlt
может скопировать растровое изображение для текущей кисти непосредственно в контекст устройства отображения.)
BITMAP
Если структура, на которую указывает lpBitmap
параметр, была заполнена с помощью GetObject
функции, биты растрового изображения не указаны, а растровое изображение не инициализировано. Чтобы инициализировать растровое изображение, приложение может использовать функцию, например CDC::BitBlt
или SetDIBits
скопировать биты из растрового изображения, определяемого первым параметром CGdiObject::GetObject
, на растровое изображение, созданное с помощью CreateBitmapIndirect
.
Завершив работу с CBitmap
объектом, созданным с CreateBitmapIndirect
помощью функции, сначала выберите растровое изображение из контекста устройства, а затем удалите CBitmap
объект.
CBitmap::CreateCompatibleBitmap
Инициализирует растровое изображение, совместимое с устройством, указанным в pDC
.
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Параметры
pDC
Указывает контекст устройства.
nWidth
Задается ширина (в пикселях) битовой карты.
nHeight
Задается высота (в пикселях) битовой карты.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Растровое изображение имеет то же количество цветовых плоскостей или тот же формат битов на пиксель, что и указанный контекст устройства. Его можно выбрать в качестве текущего растрового изображения для любого устройства памяти, совместимого с указанным pDC
.
Если pDC
это контекст устройства памяти, то точечный рисунок возвращает тот же формат, что и выбранная в данный момент растровая карта в этом контексте устройства. Контекст устройства памяти — это блок памяти, представляющий область отображения. Его можно использовать для подготовки изображений в памяти, прежде чем копировать их в фактическую область отображения совместимого устройства.
При создании контекста устройства памяти GDI автоматически выбирает для него однохромную растровую карту.
Так как контекст устройства с цветом памяти может иметь цвет или монохромные растровые изображения, формат растрового изображения, возвращаемого CreateCompatibleBitmap
функцией, не всегда совпадает. Однако формат совместимого растрового изображения для контекста устройства, отличного от памяти, всегда находится в формате устройства.
Завершив работу с CBitmap
объектом, созданным с CreateCompatibleBitmap
помощью функции, сначала выберите растровое изображение из контекста устройства, а затем удалите CBitmap
объект.
CBitmap::CreateDiscardableBitmap
Инициализирует отбрасываемую растровую карту, совместимую с контекстом устройства, определяемой pDC
.
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Параметры
pDC
Указывает контекст устройства.
nWidth
Задает ширину (в битах) растрового изображения.
nHeight
Указывает высоту (в битах) растрового изображения.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Растровое изображение имеет то же количество цветовых плоскостей или тот же формат битов на пиксель, что и указанный контекст устройства. Приложение может выбрать это растровое изображение в качестве текущего растрового изображения для устройства памяти, совместимого с указанным pDC
.
Windows может отменить растровое изображение, созданное этой функцией, только если приложение не выбрало его в контексте отображения. Если Windows отменяет растровое изображение, если оно не выбрано, а приложение позже пытается выбрать его, CDC::SelectObject
функция вернет значение NULL.
Завершив работу с CBitmap
объектом, созданным с CreateDiscardableBitmap
помощью функции, сначала выберите растровое изображение из контекста устройства, а затем удалите CBitmap
объект.
CBitmap::FromHandle
Возвращает указатель на CBitmap
объект при указании дескриптора растрового изображения Windows GDI.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
Параметры
hBitmap
Указывает растровое изображение Windows GDI.
Возвращаемое значение
Указатель на объект в случае успешного CBitmap
выполнения; в противном случае NULL
.
Замечания
CBitmap
Если объект еще не присоединен к дескрипторуCBitmap
, создается и присоединяется временный объект. Этот временный объект действителен только в следующий раз, когда приложение имеет время простоя CBitmap
в цикле событий, в то время как все временные графические объекты удаляются. Другой способ сказать, что временный объект действителен только во время обработки одного сообщения окна.
CBitmap::GetBitmap
Извлекает свойства изображения для присоединенного растрового изображения.
int GetBitmap(BITMAP* pBitMap);
Параметры
pBitMap
Указатель на структуру BITMAP
, которая получит свойства изображения. Этот параметр не должен иметь значение NULL
.
Возвращаемое значение
Ненулевое значение, если метод выполнен успешно; в противном случае — 0.
Замечания
CBitmap::GetBitmapBits
Копирует битовый шаблон присоединенного растрового изображения в указанный буфер.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
Параметры
dwCount
Число байтов для копирования в буфер.
lpBits
Указатель на буфер, который получит растровое изображение.
Возвращаемое значение
Число байтов, скопированных в буфер, если метод выполнен успешно; в противном случае — 0.
Замечания
Используется CBitmap::GetBitmap
для определения требуемого размера буфера.
CBitmap::GetBitmapDimension
Возвращает ширину и высоту растрового изображения.
CSize GetBitmapDimension() const;
Возвращаемое значение
Ширина и высота растрового изображения, измеряемая в 0,1 миллиметровых единицах. Высота находится в cy
элементе CSize
объекта, а ширина находится в элементе cx
. Если ширина и высота растрового изображения не заданы с помощью SetBitmapDimension
, возвращаемое значение равно 0.
Замечания
Предполагается, что высота и ширина заданы ранее с помощью SetBitmapDimension
функции-члена.
CBitmap::LoadBitmap
Загружает ресурс растрового изображения с lpszResourceName
именем nIDResource
или идентификатором в исполняемом файле приложения.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
Параметры
lpszResourceName
Указывает на строку, завершающую значение NULL, содержащую имя ресурса растрового изображения.
nIDResource
Указывает номер идентификатора ресурса растрового изображения.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Загруженное растровое изображение присоединено к объекту CBitmap
.
Если растровое изображение, определяемое lpszResourceName
не существует или недостаточно памяти для загрузки растрового изображения, функция возвращает значение 0.
Функцию можно использовать CGdiObject::DeleteObject
для удаления растрового изображения, загруженного LoadBitmap
функцией, или CBitmap
деструктор удалит объект.
Внимание
Перед удалением объекта убедитесь, что он не выбран в контексте устройства.
В Windows версии 3.1 и более поздних версий добавлены следующие растровые изображения:
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
Эти растровые изображения не найдены в драйверах устройств для Windows версии 3.0 и более ранних версий. Полный список растровых изображений и отображение их внешнего вида см. в пакете SDK для Windows.
CBitmap::LoadMappedBitmap
Вызовите эту функцию-член, чтобы загрузить растровое изображение и сопоставить цвета с текущими системными цветами.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
Параметры
nIDBitmap
Идентификатор ресурса растрового изображения.
nFlags
Флаг для растрового изображения. Может быть ноль или CMB_MASKED
.
lpColorMap
Указатель на COLORMAP
структуру, содержащую сведения о цвете, необходимые для сопоставления растровых карт. Если этот параметр задан NULL
, функция использует цветовую карту по умолчанию.
nMapSize
Число карт цветов, на которые указывает lpColorMap
.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
По умолчанию будут сопоставляться цвета, LoadMappedBitmap
часто используемые в глифах кнопок.
Сведения о создании сопоставленной растровой карты см. в функции CreateMappedBitmap
Windows и COLORMAP
структуре в пакете SDK для Windows.
CBitmap::LoadOEMBitmap
Загружает предопределенную растровую карту, используемую Windows.
BOOL LoadOEMBitmap(UINT nIDBitmap);
Параметры
nIDBitmap
Идентификатор предопределенного растрового изображения Windows. Возможные значения перечислены ниже:WINDOWS.H
OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKBOXES
OBM_CLOSE
OBM_COMBO
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI
OBM_MNARROW
OBM_OLD_CLOSE
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED
OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Имена растровых карт, начинающиеся с OBM_OLD
представления растровых карт, используемых версиями Windows до 3.0.
Обратите внимание, что константа должна быть определена перед включением WINDOWS.H
для использования любой из OBM_
константOEMRESOURCE
.
CBitmap::operator HBITMAP
Используйте этот оператор для получения присоединенного дескриптора CBitmap
GDI Windows объекта.
operator HBITMAP() const;
Возвращаемое значение
В случае успешного выполнения дескриптор объекта GDI Windows, представленного CBitmap
объектом; в противном случае NULL
.
Замечания
Этот оператор является оператором приведения, который поддерживает прямое использование HBITMAP
объекта.
Дополнительные сведения об использовании графических объектов см. в статье "Графические объекты " в пакете SDK для Windows.
CBitmap::SetBitmapBits
Задает бит растрового изображения для битовых значений, заданных lpBits
.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
Параметры
dwCount
Указывает число байтов, на которые указывает lpBits
.
lpBits
Указывает на BYTE
массив, содержащий значения пикселей, скопированные в CBitmap
объект. Чтобы растровое изображение правильно отображалось, значения должны быть отформатированы в соответствии с значениями высоты, ширины и глубины цвета, заданными при создании экземпляра CBitmap
. Дополнительные сведения см. в разделе CBitmap::CreateBitmap
.
Возвращаемое значение
Количество байтов, используемых при задании битовых изображений; Значение 0, если функция завершается ошибкой.
CBitmap::SetBitmapDimension
Назначает ширину и высоту растровой диаграмме в единицах 0,1 миллиметра.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
Параметры
nWidth
Задает ширину растрового изображения (в единицах 0,1 миллиметра).
nHeight
Задает высоту растрового изображения (в 0,1 миллиметровых единицах).
Возвращаемое значение
Предыдущие измерения растрового изображения. Высота находится в cy
переменной-члене CSize
объекта, а ширина находится в переменной-члене cx
.
Замечания
GDI не использует эти значения, кроме того, чтобы вернуть их, когда приложение вызывает GetBitmapDimension
функцию-член.