1 2 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