Diese
Funktion zeichnet ein geräteabhängiges Rasterbild im
angegebenen Gerät.
Die Funktion
positioniert die obere linke Ecke des Rasterbildes an der
durch die Parameter x und y bezeichneten Position. Diese
Position ist vom aktuellen Abbildungsmodus des Gerätekontextes
abhängig.
Parameter:
dc = Der Zeichenkontext, in dem das Rasterbild gezeichnet
werden soll, oder 0 für das aktive Fenster
x = Bestimmt die virtuelle x-Koordinate der oberen linken
Ecke des Rasterbildes
y = Bestimmt die virtuelle y-Koordinate der oberen linken
Ecke des Rasterbildes
hbm = Der Bezug auf das zu zeichnende Rasterbild
Funktionsergebnis:
TRUE, falls die Funktion erfolgreich war.
FALSE, wenn die Funktion erfolglos war.
BOOL DrawBitmap(HDC dc, int x, int y, HBITMAP hbm)
{
HDC dcMem;
BITMAP bm;
HWND hwndBitmap = NULL;
BOOL fSuccess;
BOOL fDcCreated = FALSE;
if (hbm == NULL)
return FALSE;
/* Ausdehnung des
Rasterbildes ermitteln */
if (!GetObject(hbm, sizeof(bm), &bm))
return FALSE;
if (dc == NULL)
{
/* Wenn kein
Ausgabekontext vorhanden ist, */
/* wird einer für
das aktive Fenster erzeugt */
hwndBitmap =
GetActiveWindow();
dc = GetDC(hwndBitmap);
if (dc != NULL)
fDcCreated = TRUE;
else
return
FALSE;
}
dcMem = CreateCompatibleDC(dc);
SelectObject(dcMem, hbm);
fSuccess = BitBlt(dc, x, y, bm.bmWidth, bm.bmHeight,
dcMem, 0, 0, SRCCOPY);
DeleteDC(dcMem);
/* Nur den oben
angelegten Ausgabekontext wieder freigeben */
if (fDcCreated)
ReleaseDC(hwndBitmap, dc);
return fSuccess;
}
[ drawbmp.c ]
[ <<
Vorheriger ] [ Übersicht ]
[ Nächster
>> ]
|