Udostępnij za pośrednictwem


CBrush::CreateDIBPatternBrush

Inicjuje pędzel z wzorcem określonym przez mapy bitowej niezależnej od urządzenia (DIB).

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

Parametry

  • hPackedDIB
    Identyfikuje obiekt pamięci globalnej zawierający pakowane mapy bitowej niezależnej od urządzenia (DIB).

  • nUsage
    Określa, czy [bmiColors] pól z BITMAPINFO do aktualnie zrealizowanych palety logiczne struktury danych (część "DIB pakowane") zawierają jawne wartości RGB lub wskaźników.Parametr musi być jedną z następujących wartości:

    • DIB_PAL_COLORS w tabeli kolorów składa się z tablicy indeksów 16-bitowych.

    • DIB_RGB_COLORS Tabela kolorów zawiera wartości literału RGB.

  • lpPackedDIB
    Wskazuje DIB pakowane, składający się z BITMAPINFO struktury bezpośrednio po niej tablicę bajtów, definiowanie pikseli bitmapy.

Wartość zwracana

Niezerowa, jeśli kończy się pomyślnie; 0 inaczej.

Uwagi

Następnie można wybrać pędzla w dowolnym kontekście urządzenia obsługującego rastrowych.

W sposobie obsługi formatu DIB różnią się dwie wersje:

  • W pierwszej wersji uzyskać dojścia do formatu DIB wywołania Windows GlobalAlloc funkcji zaalokować blok pamięci globalnej i następnie wypełnić pamięci pakowane DIB.

  • W drugim wersji nie jest konieczne do wywołania GlobalAlloc przydzielić pamięci dla zapakowanych DIB.

Spakowane DIB składa się z BITMAPINFO bezpośrednio po niej tablicę bajtów pikseli bitmapy definiuje strukturę danych.Używane jako deseni wypełnienia bitmapy powinny być 8 pikseli 8.Jeśli bitmapa jest większy, system Windows tworzy deseń wypełnienia za pomocą bitów, odpowiadające pierwszych 8 wierszy i kolumn 8 pikseli w lewym górnym rogu mapy bitowej.

Gdy aplikacja wybierze pędzel wzorka DIB dwóch kolorów do kontekstu urządzenia monochromatycznego, Windows ignoruje kolorów określonych w DIB i wyświetla zamiast pędzel wzorka przy użyciu bieżące kolory tekstu i tła kontekstu urządzenia.Mapowane do pierwszego koloru (przy przesunięciu 0 w tablicy kolorów DIB) DIB pikseli są wyświetlane przy użyciu koloru tekstu.Piksele mapowane na drugi kolor (od przesunięcia 1 w tabeli kolorów) są wyświetlane przy użyciu koloru tła.

Informacje dotyczące korzystania z następujących funkcji systemu Windows, zobacz Windows SDK:

Przykład

// 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);
   }
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CBrush

Wykres hierarchii

CBrush::CreatePatternBrush

CBrush::CreateBrushIndirect

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CGdiObject::CreateStockObject

CDC::SelectObject

CGdiObject::DeleteObject

CDC::GetBrushOrg

CDC::SetBrushOrg