Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Инкапсулирует растровое изображение интерфейса графических устройств 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 функцию-член.