Comment dessiner une image
Cette rubrique montre comment utiliser la fonction ImageList_Draw pour dessiner une image.
Bon à savoir
Technologies
Prérequis
- C/C++
- Programmation de l’interface utilisateur Windows
Instructions
Pour dessiner une image, vous utilisez la fonction ImageList_Draw ou ImageList_DrawEx . Vous spécifiez le handle dans une liste d’images, l’index de l’image à dessiner, le handle dans le contexte de l’appareil de destination, un emplacement dans le contexte de l’appareil et un ou plusieurs styles de dessin.
La fonction définie par l’utilisateur dans l’exemple de code C++ suivant utilise la fonction ImageList_Draw pour dessiner une image et enregistre les coordonnées client du rectangle englobant de l’image. Une fonction suivante utilise le rectangle englobant pour déterminer si l’utilisateur a cliqué sur l’image.
// 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;
}
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour