Compartir a través de


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.)

  • GlobalAlloc

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

Vea también

Referencia

CBrush Class

Gráfico de jerarquías

CBrush::CreatePatternBrush

CBrush::CreateBrushIndirect

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CGdiObject::CreateStockObject

CDC::SelectObject

CGdiObject::DeleteObject

CDC::GetBrushOrg

CDC::SetBrushOrg