CBrush::CreateDIBPatternBrush
Inicializuje stopy se vzorkem určený rastr nezávislý na zařízení (DIB).
BOOL CreateDIBPatternBrush(
HGLOBAL hPackedDIB,
UINT nUsage
);
BOOL CreateDIBPatternBrush(
const void* lpPackedDIB,
UINT nUsage
);
Parametry
hPackedDIB
Určuje globální paměti objekt obsahující sbalené rastr nezávislý na zařízení (DIB).nUsage
Určuje, zda [bmiColors] pole BITMAPINFO strukturu dat (část "zabaleny DIB") obsahují explicitní hodnoty RGB nebo indexy do aktuálně realizované paletu logické.Parametr musí být jedna z následujících hodnot:DIB_PAL_COLORS tabulky barev se skládá z matice 16bitové indexy.
DIB_RGB_COLORS obsahuje tabulku barev RGB hodnoty literálu.
lpPackedDIB
Body sbalené DIB sestávající z BITMAPINFO struktury bezprostředně následuje pole bajtů definování obrazové body bitmapy.
Vrácená hodnota
Nenulová hodnota, pokud je úspěšná. jinak 0.
Poznámky
Stopy lze následně vybrat jakékoli kontextu zařízení podporující rastrové operace.
Dvě verze se liší způsobem zpracování DIB:
V první verzi získat popisovač DIB volání systému Windows GlobalAlloc funkce přidělení blok globální paměti a paměť vyplnit sbalené DIB.
V druhé verzi není nutné volat GlobalAlloc přidělení paměti pro balené DIB.
Balené DIB je tvořen BITMAPINFO strukturu dat okamžitě následuje pole bajtů, který definuje obrazové body bitmapy.8 X 8 pixelů by měla být použita jako vzorky výplně bitmapy.Pokud větší bitmapu, vytvoří systém Windows pomocí pouze bity odpovídající prvních 8 řádků a sloupců 8 pixelů v levém horním rohu bitmapy vzorek výplně.
Aplikace vybere vzorek stopy DIB dvou barev do kontextu monochromatické zařízení, systém Windows Ignorovat barvy definované v DIB a místo toho zobrazí štětec vzorku pomocí aktuální barvy textu a pozadí kontext zařízení.Pixelů mapované na první barvu DIB (na posunu 0 v tabulce barev DIB) jsou zobrazeny pomocí barvy textu.Pixelů mapované na druhé barvy (posunem 1 v tabulce barev) jsou zobrazeny barvou pozadí.
Informace o použití těchto funkcí systému Windows naleznete :
CreateDIBPatternBrush (Tato funkce je poskytována pouze pro kompatibilitu s aplikací napsaných pro verze systému Windows starší než 3.0; použít CreateDIBPatternBrushPt funkce.)
CreateDIBPatternBrushPt (tuto funkci by měla použít pro aplikace založené na systému Win32).
Příklad
// 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);
}
}
Požadavky
Záhlaví: afxwin.h