Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
5. Grafika 14/20<br />
Aby skopiowa zawarto tablicy zawierajcej bity mapy bitowej do istniejcej mapy bitowej<br />
naley uy funkcji:<br />
LONG SetBitmapBits(HBITMAP hBitmap, LONG dwCount, LPVOID<br />
pBitmap)<br />
dwCount - ilo bitów do przekopiowania do tablicy wskazanej przez pBitmap. Liczb<br />
wszystkich bitów w mapie bitowej mona wyliczy za pomoc wzoru:<br />
dwCount = (DWORD) bitmap.bmWidhtBytes * bitmap.bmHeight *<br />
bitmap.bmPlanes;<br />
Moemy pobra informacje o bitmapie za pomoc funkcji:<br />
GetObject(hBitmap, sizeof(BITMAP), (LPVOID) &bitmap) – funkcja<br />
kopiuje informacje do struktury BITMAP pozostawiajc pole bmBits puste.<br />
Aby otrzyma dostp do mapy bitowej naley wywoła funkcj:<br />
LONG GetBitmapBits(HBITMAP hBitmap, LONG dwCount, LPVOID<br />
pBitmap)<br />
W kontekcie zwykłego urzdzenia nie mona wybra mapy bitowej. Jest to moliwe jedynie<br />
w kontekcie urzdzenia pamiciowego. Kontekst urzdzenia pamiciowego ta taki DC, który<br />
ma „powierzchnie wywietlania” istniejc tylko w pamici komputera i moemy go<br />
utworzy za pomoc funkcji:<br />
HDC CreateCompatibleDC(HDC hdc) – funkcja tworzy DC pamiciowego , który ma<br />
“powierzchni wywietlania” zawierajc dokładnie 1 piksel monochromatyczny.<br />
Aby powikszy tak utworzony DC pamiciowego naley wybra map bitow w DC:<br />
SelectObject(hdcMem, hBitmap);<br />
Z tak utworzonym DC moesz robi to samo co z zwykłym DC – zmienia atrybuty,<br />
sprawdza ich wartoci, wybiera w kontekcie pióro, pdzel i regiony.<br />
Wszelkie zmiany poczynione na mapie bitowej pojawiaj si na powierzchni wywietlania<br />
DC pamiciowego. Wszystko co narysujesz w DC pamiciowego jest tak naprawd rysowane<br />
na mapie bitowej.<br />
Bitmap bdziemy wywietla w DC obszaru roboczego naszego okna przekazujc bity<br />
bitmapy midzy kontekstami urzdzenia.<br />
BOOL PatBlt(HDC hdc, int xDest, int yDest, int xWidth, int<br />
yHeight, DWORD dwROP) – funkcja rysuje prostokt uywajc biecego pdzla.<br />
Funkcja dokonuje operacji logicznych na kolorach pdzla i ekranu.<br />
xDst, yDst – punkt logiczny wskazujcy na lewy górny naronik prostokta dla trybu<br />
MM_TEXT. W pozostałych trybach naronik prostokta zale od znaku przy dwóch<br />
kolejnych parametrach.<br />
xWidth, yHeight – warto bezwzgldna z tych wartoci wyznacza szeroko i wysoko<br />
prostokta<br />
dwROP – okrela operacje wykonywane na kolorach pdzla i ekranu:<br />
BLACKNESS – wypełnia prostokt czarnym kolorem<br />
WHITENESS – wypełnia prostokt białym kolorem<br />
DSTINVERT – odwraca kolor ekranu<br />
PATINVERT – łczy kolory za pomoc operacji logicznej XOR (Pdzel ^ Ekran)<br />
PATCOPY – przekopiowuje kolory pdzla<br />
Copyright © 2001-2003 Ewa Lach