| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | void Bitmap::Draw(HDC hDC, int x, int y, BOOL bTrans, COLORREF crTransColor)
{
  DrawPart(hDC, x, y, 0, 0, GetWidth(), GetHeight(), bTrans, crTransColor);
}
 
void Bitmap::DrawPart(HDC hDC, int x, int y, int xPart, int yPart, int wPart, int hPart, BOOL bTrans, COLORREF crTransColor)
{
	if (m_hBitmap != NULL)
	{
		// Création d'un contexte de périphérique en mémoire pour le bitmap
		HDC hMemDC = CreateCompatibleDC(hDC);
 
		// Sélection du bitmap dans le contexte de périphérique
		HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC, m_hBitmap);
 
		// Dessin du bitmap sur le contexte de périphérique de destination
		if (bTrans)
			TransparentBlt(hDC, x, y, wPart, hPart, hMemDC, xPart, yPart, wPart, hPart, crTransColor);
		else
			BitBlt(hDC, x, y, wPart, hPart, hMemDC, xPart, yPart, SRCCOPY);
 
		// Restauration et suppression du contexte de périphérique en mémoire
		SelectObject(hMemDC, hOldBitmap);
		DeleteDC(hMemDC);
	}
} | 
Partager