Bouton Owner-Draw Désactivé [Résolu]

Bouton Owner-Draw Désactivé [Résolu] - C++ - Programmation

Marsh Posté le 05-03-2012 à 14:41:28    

Salut à tous,
 
J'utilise actuellement un bouton owner-draw.  
J'ai donc fait ma classe MyButton et surchargé la fonction DrawItem, pour afficher une image Bitmap et un texte par dessus.
L'image est choisie parmis 2 qui sont affectées au bouton afin d'avoir une image quand le bouton est "enable" et une l'autre quand le bouton est "disable".
La couleur du texte écrit par dessus l'image dépend aussi de l'état du bouton (gris quand il est "disable" ).
 
Quand j'utilise la fenetre où mon MyButton est ajouté, (je rend enable puis disable mon boutton à tour de rôle), tout fonctionne très bien, j'ai bien l'image et la couleur de texte que je souhaite pour chacun des états.
 
Voici le problème que je ne parviens pas à surmonter :
 
Si à l'ouverture de ma fenêtre, mon MyButton est "disable", alors l'image n'est pas dessinée. (le texte lui est bien écrit, et dans la bonne couleur : gris).
Si à l'ouverture de ma fenetre, mon MyButton est "enable", tout se déroule très bien, dès l'ouverture de la fenêtre.
 
J'ai supposé que la gestion de l'affichage d'un bouton disable devait être différente... mais je ne vois pas comment remédier à ce problème.
 
(A noter, pour dessiner l'image, j'utilise la fonction TransparentBlt, et pour dessiner le texte, j'utilise TextOut.)
 
Merci à tous ceux qui se pencheront sur cette question.
Bonne journée à tous.


Message édité par ametisse le 05-03-2012 à 15:25:50
Reply

Marsh Posté le 05-03-2012 à 14:41:28   

Reply

Marsh Posté le 05-03-2012 à 15:25:15    

:pt1cable:  
Oulala...  
Bon, ben problème résolu : en fait, à force de faire pleins de tests, je me suis emmélé les pinceaux.
Et du coup, mon problème venait tout simplement du fait que je passais une mauvaise BitMap. (et le cas que j'ai annoncé comme fonctionnant correctement ne fonctionnait pas mieux en fait).
 
Donc en bref, quand les deux bitmaps sont correctement passées, c'est bon, tout fonctionne, y compris au lancement de la boîte de dialogue.
 
Désolée.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed