Clase CBitmap
Encapsula un mapa de bits de la Interfaz de dispositivo gráfico (GDI) de Windows y proporciona funciones miembro para manipular el mapa de bits.
Sintaxis
class CBitmap : public CGdiObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CBitmap::CBitmap |
Construye un objeto CBitmap . |
Métodos públicos
Nombre | Descripción |
---|---|
CBitmap::CreateBitmap |
Inicializa el objeto con un mapa de bits de memoria dependiente de dispositivo que tiene el ancho, el alto y el patrón de bits especificados. |
CBitmap::CreateBitmapIndirect |
Inicializa el objeto con un mapa de bits con el ancho, el alto y el patrón de bits (si se especifica uno) especificados en una estructura BITMAP . |
CBitmap::CreateCompatibleBitmap |
Inicializa el objeto con un mapa de bits para que sea compatible con un dispositivo especificado. |
CBitmap::CreateDiscardableBitmap |
Inicializa el objeto con un mapa de bits descartable para que sea compatible con un dispositivo especificado. |
CBitmap::FromHandle |
Devuelve un puntero a un objeto CBitmap cuando se especifica un manipulador de un mapa de bits HBITMAP de Windows. |
CBitmap::GetBitmap |
Rellena una estructura BITMAP con información sobre el mapa de bits. |
CBitmap::GetBitmapBits |
Copia los bits del mapa de bits especificado en el búfer especificado. |
CBitmap::GetBitmapDimension |
Devuelve el ancho y alto del mapa de bits. Se supone que la función miembro SetBitmapDimension ha establecido previamente el alto y el ancho. |
CBitmap::LoadBitmap |
Inicializa el objeto cargando un recurso de mapa de bits con nombre desde el archivo ejecutable de la aplicación y asociando el mapa de bits al objeto. |
CBitmap::LoadMappedBitmap |
Carga un mapa de bits y asigna colores a los colores actuales del sistema. |
CBitmap::LoadOEMBitmap |
Inicializa el objeto cargando un mapa de bits predefinido de Windows y adjuntando el mapa de bits al objeto. |
CBitmap::SetBitmapBits |
Establece los bits de un mapa de bits en los valores de bits especificados. |
CBitmap::SetBitmapDimension |
Asigna un ancho y alto a un mapa de bits en unidades de 0,1 milímetros. |
Operadores públicos
Nombre | Descripción |
---|---|
CBitmap::operator HBITMAP |
Devuelve el controlador de Windows asociado al objeto CBitmap . |
Comentarios
Para usar un objeto CBitmap
, construya el objeto, asóciele un manipulador de mapa de bits con una de las funciones miembro de inicialización y, a continuación, llame a las funciones miembro del objeto.
Para más información sobre el uso de objetos gráficos como CBitmap
, vea Objetos gráficos.
Jerarquía de herencia
CBitmap
Requisitos
Encabezado: afxwin.h
CBitmap::CBitmap
Construye un objeto CBitmap
.
CBitmap();
Comentarios
El objeto resultante debe inicializarse con una de las funciones miembro de inicialización.
CBitmap::CreateBitmap
Inicializa un mapa de bits de memoria dependiente de dispositivo que tiene el ancho, el alto y el patrón de bits especificados.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
Parámetros
nWidth
Especifica el ancho (en píxeles) del mapa de bits.
nHeight
Especifica el alto (en píxeles) del mapa de bits.
nPlanes
Especifica el número de planos de color del mapa de bits.
nBitcount
Especifica el número de bits de color por píxel de la pantalla.
lpBits
Apunta a una matriz de bytes que contiene los valores de bits de mapa de bits iniciales. Si es NULL
, el nuevo mapa de bits se deja sin inicializar.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Para un mapa de bits de color, el parámetro nPlanes
o nBitcount
debe establecerse en 1. Si ambos parámetros se establecen en 1, CreateBitmap
crea un mapa de bits monocromo.
Aunque un mapa de bits no se puede seleccionar directamente para un dispositivo de visualización, puede seleccionarse como el mapa de bits actual para un "contexto de dispositivo de memoria" mediante CDC::SelectObject
y copiarse en cualquier contexto de dispositivo compatible con la función CDC::BitBlt
.
Cuando termine con el objeto CBitmap
creado por la función CreateBitmap
, seleccione primero el mapa de bits fuera del contexto del dispositivo y elimine luego el objeto CBitmap
.
Para más información, vea la descripción del campo bmBits
en la estructura BITMAP
. La estructura BITMAP
se describe en la función miembro CBitmap::CreateBitmapIndirect
.
CBitmap::CreateBitmapIndirect
Inicializa un mapa de bits que tiene el ancho, el alto y el patrón de bits (si se especifica uno) dado en la estructura a la que apunta lpBitmap
.
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
Parámetros
lpBitmap
Apunta a una estructura BITMAP
que contiene información sobre el mapa de bits.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Aunque un mapa de bits no se puede seleccionar directamente para un dispositivo de visualización, puede seleccionarse como el mapa de bits actual para un contexto de dispositivo de memoria mediante CDC::SelectObject
y copiarse en cualquier contexto de dispositivo compatible con la función CDC::BitBlt
o CDC::StretchBlt
. (La función CDC::PatBlt
puede copiar el mapa de bits para el pincel actual directamente en el contexto del dispositivo de visualización).
Si la estructura BITMAP
a la que apunta el parámetro lpBitmap
se ha rellenado mediante la función GetObject
, no se especifican los bits del mapa de bits y este no se inicializa. Para inicializar el mapa de bits, una aplicación puede usar una función como CDC::BitBlt
o SetDIBits
para copiar los bits del mapa de bits identificado por el primer parámetro de CGdiObject::GetObject
en el mapa de bits creado por CreateBitmapIndirect
.
Cuando termine con el objeto CBitmap
creado por la función CreateBitmapIndirect
, seleccione primero el mapa de bits fuera del contexto del dispositivo y luego elimine el objeto CBitmap
.
CBitmap::CreateCompatibleBitmap
Inicializa un mapa de bits compatible con el dispositivo especificado por pDC
.
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parámetros
pDC
Especifica el contexto del dispositivo.
nWidth
Especifica el ancho (en píxeles) del mapa de bits.
nHeight
Especifica el alto (en píxeles) del mapa de bits.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El mapa de bits tiene el mismo número de planos de color o el mismo formato de bits por píxel que el contexto de dispositivo especificado. Se puede seleccionar como el mapa de bits actual para cualquier dispositivo de memoria compatible con el especificado por pDC
.
Si pDC
es un contexto de dispositivo de memoria, el mapa de bits devuelto tiene el mismo formato que el mapa de bits seleccionado actualmente en ese contexto del dispositivo. Un "contexto de dispositivo de memoria" es un bloque de memoria que representa una superficie de visualización. Se puede usar para preparar imágenes en memoria antes de copiarlas en la superficie de visualización real del dispositivo compatible.
Cuando se crea un contexto de dispositivo de memoria, GDI selecciona automáticamente para él un mapa de bits monocromático estándar.
Dado que un contexto de dispositivo de memoria de color puede tener seleccionados mapas de bits de color o monocromáticos, el formato del mapa de bits devuelto por la función CreateCompatibleBitmap
no siempre es el mismo; sin embargo, el formato de un mapa de bits compatible para un contexto de dispositivo que no es de memoria siempre está en el formato del dispositivo.
Cuando termine con el objeto CBitmap
creado con la función CreateCompatibleBitmap
, seleccione primero el mapa de bits fuera del contexto del dispositivo y elimine luego el objeto CBitmap
.
CBitmap::CreateDiscardableBitmap
Inicializa un mapa de bits descartable que es compatible con el contexto del dispositivo identificado por pDC
.
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parámetros
pDC
Especifica un contexto de dispositivo.
nWidth
Especifica el ancho (en bits) del mapa de bits.
nHeight
Especifica el alto (en bits) del mapa de bits.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El mapa de bits tiene el mismo número de planos de color o el mismo formato de bits por píxel que el contexto de dispositivo especificado. Una aplicación puede seleccionar este mapa de bits como mapa de bits actual para un dispositivo de memoria compatible con el especificado por pDC
.
Windows solo puede descartar un mapa de bits creado por esta función si una aplicación no la ha seleccionado en un contexto de visualización. Si Windows descarta el mapa de bits cuando no está seleccionado y la aplicación intenta seleccionarla más adelante, la función CDC::SelectObject
devolverá NULL.
Cuando termine con el objeto CBitmap
creado con la función CreateDiscardableBitmap
, seleccione primero el mapa de bits fuera del contexto del dispositivo y elimine luego el objeto CBitmap
.
CBitmap::FromHandle
Devuelve un puntero a un objeto CBitmap
cuando se especifica un manipulador de un mapa de bits GDI de Windows.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
Parámetros
hBitmap
Especifica un mapa de bits GDI de Windows.
Valor devuelto
Un puntero a un objeto CBitmap
si se realiza correctamente; de lo contrario, NULL
.
Comentarios
Si no hay un objeto CBitmap
ya asociado al identificador, se crea y asocia un objeto CBitmap
temporal. Este objeto CBitmap
temporal solo es válido hasta la próxima vez que la aplicación tenga tiempo de inactividad en su bucle de eventos, momento en el que se eliminan todos los objetos gráficos temporales. Es decir, el objeto temporal solo será válido mientras se procesa un mensaje de ventana.
CBitmap::GetBitmap
Recupera las propiedades de imagen para el mapa de bits asociado.
int GetBitmap(BITMAP* pBitMap);
Parámetros
pBitMap
Puntero a una estructura BITMAP
que recibirá las propiedades de la imagen. Este parámetro no debe ser NULL
.
Valor devuelto
Distinto de cero si el método se realizó correctamente. En caso contrario, 0.
Comentarios
CBitmap::GetBitmapBits
Copia el patrón de bits del mapa de bits asociado en el búfer especificado.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
Parámetros
dwCount
El número de bytes que se deben copiar en el búfer.
lpBits
Puntero al búfer que recibirá el mapa de bits.
Valor devuelto
Número de bytes copiados en el búfer si el método se realizó correctamente; de lo contrario, 0.
Comentarios
Use CBitmap::GetBitmap
para determinar el tamaño de búfer necesario.
CBitmap::GetBitmapDimension
Devuelve el ancho y alto del mapa de bits.
CSize GetBitmapDimension() const;
Valor devuelto
Ancho y alto del mapa de bits, medido en unidades de 0,1 milímetros. El alto está en el miembro cy
del objeto CSize
y el ancho está en el miembro cx
. Si el ancho y el alto del mapa de bits no se han establecido mediante SetBitmapDimension
, el valor devuelto es 0.
Comentarios
Se supone que el alto y el ancho se han establecido previamente mediante la función miembro SetBitmapDimension
.
CBitmap::LoadBitmap
Carga el recurso de mapa de bits denominado por lpszResourceName
o identificado por el número de id. en nIDResource
desde el archivo ejecutable de la aplicación.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
Parámetros
lpszResourceName
Apunta a una cadena finalizada en null que contiene el nombre del recurso de mapa de bits.
nIDResource
Especifica el número del id. de recurso del recurso de mapa de bits.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El mapa de bits cargado se adjunta al objeto CBitmap
.
Si el mapa de bits identificado por lpszResourceName
no existe o si no hay memoria suficiente para cargar el mapa de bits, la función devuelve 0.
Puede usar la función CGdiObject::DeleteObject
para eliminar el mapa de bits cargado por la función LoadBitmap
o el destructor CBitmap
eliminará el objeto automáticamente.
Precaución
Antes de eliminar el objeto, asegúrese de que no está seleccionado en un contexto de dispositivo.
Los siguientes mapas de bits se agregaron a las versiones 3.1 y posteriores de Windows:
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
Estos mapas de bits no se encuentran en los controladores de dispositivo para las versiones 3.0 y anteriores de Windows. Para una lista completa de mapas de bits y una presentación de su apariencia, consulte Windows SDK.
CBitmap::LoadMappedBitmap
Llame a esta función miembro para cargar un mapa de bits y asignar los colores a los colores del sistema actuales.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
Parámetros
nIDBitmap
Id. del recurso de mapa de bits.
nFlags
Marca de un mapa de bits. Puede ser cero o CMB_MASKED
.
lpColorMap
Puntero a una estructura COLORMAP
que contiene la información de color necesaria para asignar los mapas de bits. Si este parámetro es NULL
, la función usa el mapa de colores predeterminado.
nMapSize
Número de mapas de colores a los que lpColorMap
apunta.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
De forma predeterminada, LoadMappedBitmap
asignará los colores que se usan habitualmente en glifos de botón.
Para información sobre cómo crear un mapa de bits asignado, consulte la función CreateMappedBitmap
de Windows y la estructura COLORMAP
en Windows SDK.
CBitmap::LoadOEMBitmap
Carga un mapa de bits predefinido usado por Windows.
BOOL LoadOEMBitmap(UINT nIDBitmap);
Parámetros
nIDBitmap
Número de id. del mapa de bits predefinido de Windows. Los valores posibles se enumeran a continuación desde 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
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Los nombres de mapa de bits que comienzan por OBM_OLD
representan mapas de bits usados por las versiones de Windows anteriores a la versión 3.0.
Tenga en cuenta que la constante OEMRESOURCE
debe definirse antes de incluir WINDOWS.H
para poder usar cualquiera de las constantes OBM_
.
CBitmap::operator HBITMAP
Use este operador para obtener el identificador GDI de Windows adjunto del CBitmap
objeto.
operator HBITMAP() const;
Valor devuelto
Si se ejecuta correctamente, un manipulador del objeto de la GDI de Windows representado por el objeto CBitmap
; de lo contrario, NULL
.
Comentarios
Este operador es un operador de conversión que admite el uso directo de un objeto HBITMAP
.
Para más información sobre el uso de objetos gráficos, consulte Objetos gráficos en Windows SDK.
CBitmap::SetBitmapBits
Establece los bits de un mapa de bits en los valores de bits proporcionados por lpBits
.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
Parámetros
dwCount
Especifica el número de bytes a los que lpBits
apunta.
lpBits
Apunta a la matriz BYTE
que contiene los valores de píxel que se van a copiar en el objeto CBitmap
. Para que el mapa de bits pueda representar correctamente su imagen, se deben formatear los valores para que se ajusten a los valores de alto, ancho y profundidad de color especificados cuando se creó la instancia de CBitmap
. Para obtener más información, vea CBitmap::CreateBitmap
.
Valor devuelto
Número de bytes utilizados para establecer los bits del mapa de bits; 0 si se produce un error en la función.
CBitmap::SetBitmapDimension
Asigna un ancho y alto a un mapa de bits en unidades de 0,1 milímetros.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
Parámetros
nWidth
Especifica el ancho del mapa de bits (en unidades de 0,1 milímetros).
nHeight
Especifica el alto del mapa de bits (en unidades de 0,1 milímetros).
Valor devuelto
Dimensiones de mapa de bits anteriores. La altura está en la variable miembro cy
del objeto CSize
y el ancho está en la variable miembro cx
.
Comentarios
La GDI no usa estos valores, excepto para devolverlos cuando una aplicación llama a la función miembro GetBitmapDimension
.