Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird veranschaulicht, wie Sie die ImageList_Draw-Funktion verwenden, um ein Bild zu zeichnen.
Wichtige Informationen
Technologien
Voraussetzungen
- C/C++
- Programmierung der Windows-Benutzeroberfläche
Anweisungen
Um ein Bild zu zeichnen, verwenden Sie die ImageList_Draw- oder ImageList_DrawEx-Funktion . Sie geben das Handle für eine Bildliste, den Index des zu zeichnenden Bilds, das Handle für den Zielgerätekontext, eine Position im Gerätekontext und mindestens einen Zeichnungsstil an.
Die benutzerdefinierte Funktion im folgenden C++-Codebeispiel verwendet die ImageList_Draw-Funktion zum Zeichnen eines Bilds und speichert die Clientkoordinaten des umgebenden Rechtecks des Bilds. Eine nachfolgende Funktion verwendet das umgebende Rechteck, um zu bestimmen, ob der Benutzer auf das Bild geklickt hat.
// DrawTheImage - draws an image transparently and saves
// the bounding rectangle of the drawn image.
// Returns TRUE if successful, or FALSE otherwise.
// hwnd - handle to the window in which to draw the image.
// himl - handle to the image list that contains the image.
// cx and cy - client coordinates for the upper-left corner of the image.
//
// Global variables and constants
// g_nImage - index of the image to draw.
// g_rcImage - bounding rectangle of the image.
// CX_IMAGE and CY_IMAGE - width and height of the image.
extern int g_nImage;
extern RECT g_rcImage;
#define CX_IMAGE 32
#define CY_IMAGE 32
BOOL DrawTheImage(HWND hwnd, HIMAGELIST himl, int cx, int cy)
{
HDC hdc;
if ((hdc = GetDC(hwnd)) == NULL)
return FALSE;
if (!ImageList_Draw(himl, g_nImage, hdc, cx, cy, ILD_TRANSPARENT))
return FALSE;
ReleaseDC(hwnd, hdc);
SetRect(&g_rcImage, cx, cy, CX_IMAGE + cx, CY_IMAGE + cy);
return TRUE;
}
Zugehörige Themen