Класс 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, см. в разделе "Графические объекты".

Иерархия наследования

CObject

CGdiObject

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 dis карта отображает растровое изображение, если оно не выбрано, а приложение позже пытается выбрать его, 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_BizTalk Server IZE
OBM_CHECK
OBM_CHECКБ OXES
OBM_CLOSE
OBM_COМБ O
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 функцию-член.

См. также

Пример MDI MFC
CGdiObject Класса
Диаграмма иерархии