ListBox & transparence

Résolu
cs_norton
Messages postés
215
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
21 août 2011
- 10 déc. 2006 à 19:57
cs_norton
Messages postés
215
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
21 août 2011
- 17 déc. 2006 à 14:32
Bonsoir, je code sous Borland C++ Builder 6 et j'aimerai savoir si y a un moyen de rendre une listbox transparente ??

Je m'explique :

En arrière plant sur ma form j'ai mis une image bmp et j'aimerai pouvoir voir mon image a travers la listbox.

Merci et bonne soirée.

2 réponses

racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
14
17 déc. 2006 à 12:14
Salut,
C'est possible avec l'API Windows. La listbox doit avoir le style LBS_OWNERDRAWFIXED. Elle doit aussi avoir le style LBS_HASSTRINGS pour pouvoir afficher son contenu. La fenêtre mère reçoit le message WM_DRAWITEM quand le contenu de la listbox sera affiché. lParam contient un pointeur sur une structure DRAWITEMSTRUCT. Cette structure contient tout ce qu'il faut pour afficher tous les items de la listbox. SetBkMode() permet de passer au mode transparent avant l'écriture des items avec DrawText(). Si la listbox n'a pas de barre de défilement, on obtient facilement la transparence du fond. Il suffit de sous-classer la listbox et faire un return 1; pour le message WM_ERASEBKGND. Dans le cas contraire, c'est un peu plus compliqué car il faudra sauvegarder le fond original de la listbox pour pouvoir le restaurer apès un défilement.
3
cs_norton
Messages postés
215
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
21 août 2011

17 déc. 2006 à 14:32
bonjour, merci pour votre réponse mais je me suis débrouillé autremment.
Mais merci du conseille.

@++ et bon coding.

norton
0