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:
CreateDIBPatternBrush (to funkcja zapewnia zgodnooć z aplikacji napisanych dla systemu Windows w wersji wcześniejszej niż 3.0; Użyj CreateDIBPatternBrushPt funkcji.)
CreateDIBPatternBrushPt (Ta funkcja powinna używane dla aplikacji Win32).
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