CBrush::CreateDIBPatternBrush
Inicializa un pincel con el modelo especificado por un mapa de bits independiente del dispositivo (DIB).
BOOL CreateDIBPatternBrush(
HGLOBAL hPackedDIB,
UINT nUsage
);
BOOL CreateDIBPatternBrush(
const void* lpPackedDIB,
UINT nUsage
);
Parámetros
hPackedDIB
Identifica un objeto de global-memoria que contiene un mapa de bits independiente del dispositivo empaquetado (DIB).nUsage
Especifica si los campos de bmiColors [] de la estructura de datos de BITMAPINFO (una parte “DIB empaquetado”) contienen valores o índices explícitos RGB en la paleta lógica actualmente observada. El parámetro debe ser uno de los siguientes valores:La paleta de colores deDIB_PAL_COLORS The consta de una matriz de índices de 16 bits.
La paleta de colores deDIB_RGB_COLORS The contiene valores literales RGB.
lpPackedDIB
Señala DIB empaquetado se compone de una estructura de BITMAPINFO inmediatamente a continuación por una matriz de bytes que definían los píxeles del mapa de bits.
Valor devuelto
Distinto de cero si correctamente; si no 0.
Comentarios
El pincel puede posteriormente seleccionarse para cualquier contexto de dispositivos que admite operaciones de la trama.
Las dos versiones diferentes de la manera que administra DIB:
En la primera versión, obtener un identificador del archivo DIB llama a la función de Windows GlobalAlloc para asignar un bloque de memoria global y después para rellenar la memoria con DIB empaquetado.
En la segunda versión, no es necesario llamar a GlobalAlloc para asignar memoria para el archivo DIB empaquetado.
DIB empaquetado consta de una estructura de datos de BITMAPINFO inmediatamente seguida de la matriz de bytes que define los píxeles del mapa de bits. Los mapas de bits utilizados como tramas de relleno deben ser de 8 por 8 píxeles. Si el mapa de bits es mayor, Windows crea una trama de relleno utilizando únicamente los bits correspondientes a las primeras 8 filas y 8 columnas de píxeles en la esquina superior izquierda del mapa de bits.
Cuando una aplicación selecciona un pincel bicolor de modelo DIB en un contexto monocromático de dispositivo, Windows omite los colores especificados en el archivo DIB y en su lugar muestra el pincel del modelo utilizando el texto y los colores de fondo actuales del contexto del dispositivo. Los píxeles asignados al primer color (en el desplazamiento 0 en la paleta de colores DIB) DIB se muestran con el color del texto. Los píxeles asignados al segundo color (en el desplazamiento 1 en la paleta de colores) se muestran con el color de fondo.
Para obtener información sobre cómo utilizar las funciones de Windows siguientes, vea Windows SDK:
CreateDIBPatternBrush (función de Esta únicamente se proporciona por compatibilidad aplicaciones creadas para las versiones de Windows anteriores de 3,0; utilice la función de CreateDIBPatternBrushPt .)
CreateDIBPatternBrushPt (función de Esta se debe usar para las aplicaciones basadas en win32.)
Ejemplo
// Resource handle to bitmap.
HRSRC hRes;
// Global handles to bitmap resource.
HGLOBAL hData;
void* hLockedData;
CBrush brush;
// Find the resource handle.
hRes = ::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDB_BRUSH), RT_BITMAP);
if (hRes != NULL)
{
// Lock and Load (or Load and Lock).
if (((hData = ::LoadResource(AfxGetResourceHandle(),
hRes)) != NULL) &&
((hLockedData = ::LockResource(hData)) != NULL))
{
// Initialize the brush.
brush.CreateDIBPatternBrush((const void*)hLockedData,
DIB_RGB_COLORS);
// Select the brush into the device context.
CBrush* pOldBrush = pDC->SelectObject(&brush);
// Draw.
pDC->Rectangle(50, 50, 200, 200);
// Restore the original device context.
pDC->SelectObject(pOldBrush);
// Free the resource.
::FreeResource(hLockedData);
}
}
Requisitos
encabezado: afxwin.h