Partilhar via


CBrush::CreateDIBPatternBrush

Inicializa um pincel com o padrão especificado por um bitmap independente de dispositivo (DIB).

BOOL CreateDIBPatternBrush(
      HGLOBAL hPackedDIB,
   UINT nUsage 
);
BOOL CreateDIBPatternBrush(
   const void* lpPackedDIB,
   UINT nUsage 
);

Parâmetros

  • hPackedDIB
    Identifica um objeto de memória global que contém um bitmap independente de dispositivo compactado (DIB).

  • nUsage
    Especifica se o [] bmiColors campos o BITMAPINFO estrutura de dados (uma parte do "embalada DIB") contém valores RGB ou índices explícita na paleta lógica realizada no momento.O parâmetro deve ser um dos seguintes valores:

    • DIB_PAL_COLORS   A tabela de cores consiste em uma matriz de índices de 16 bit.

    • DIB_RGB_COLORS   A tabela de cores contém valores RGB literal.

  • lpPackedDIB
    Pontos a serem compactado DIB consiste em um BITMAPINFO estrutura imediatamente seguida por uma matriz de bytes definindo os pixels do bitmap.

Valor de retorno

Diferente de zero se bem-sucedida; caso contrário, 0.

Comentários

O pincel, em seguida, pode ser selecionado para qualquer contexto de dispositivo que ofereça suporte a operações de varredura.

As duas versões diferem na maneira como você lida com o DIB:

  • Na primeira versão, para obter um identificador para o DIB você telefonar o Windows GlobalAllocfunção para alocar um bloco de memória global e, em seguida, preencha a memória com DIB compactada.

  • Na segunda versão, não é necessário telefonar GlobalAlloc alocar memória para o DIB compactada.

DIB compactada consiste em um BITMAPINFO estrutura de dados seguida imediatamente por matriz de bytes que define os pixels do bitmap. sistema autônomo bitmaps usados sistema autônomo padrões de preenchimento deve ser 8 pixels por 8 pixels.Se o bitmap for maior, o Windows cria um padrão de preenchimento usando somente os bits correspondente às primeiros 8 linhas e 8 colunas de pixels no canto superior esquerdo do bitmap.

Quando um aplicativo seleciona um pincel de padrão DIB de duas cores em um contexto de dispositivo monocromáticas, o Windows ignora as cores especificadas em de DIB e exibe, em vez disso, o pincel de padrão usando as cores de texto e plano de fundo corrente do contexto de dispositivo.Mapeado para a primeira cor (no deslocamento 0 na tabela de cores DIB) de DIB pixels são exibidos usando a cor do texto.Pixels mapeados para a segunda cor (em deslocamento 1 na tabela de cores) são exibidos usando a cor do plano de fundo.

Para obter informações sobre como usar as seguintes funções do Windows, consulte o Windows SDK:

  • CreateDIBPatternBrush   (Essa função é fornecida somente para compatibilidade com aplicativos escritos para versões do Windows anteriores ao 3.0; usar o CreateDIBPatternBrushPt função.)

  • CreateDIBPatternBrushPt   (Esta função deve ser usada para aplicativos baseados em Win32).

  • GlobalAlloc

Exemplo

// 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

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CBrush

Gráfico de hierarquia

CBrush::CreatePatternBrush

CBrush::CreateBrushIndirect

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CGdiObject::CreateStockObject

CDC::SelectObject

CGdiObject::DeleteObject

CDC::GetBrushOrg

CDC::SetBrushOrg

Outros recursos

CBrush membros