J'essaie de créer un contrôle CStatic
personnalisé dans vc++
et j'ai quelques problèmes.CStatic Custom Control
À l'origine, j'utilisais simplement un contrôle CStatic
avec le style SS_BLACKRECT
. C'était bon pour la situation jusqu'à ce que je devais afficher une image sur le contrôle à la demande.
J'ai trouvé toute la logistique nécessaire pour dessiner l'image sur la commande mais je n'arrive pas à comprendre comment faire sans interférer avec d'autres choses.
Fondamentalement, je veux que le contrôle fonctionne comme un CStatic
normal avec le style SS_BLACKRECT
la plupart du temps.
Ensuite, je dois être en mesure d'appeler une méthode qui l'amènera à dessiner une image sur le contrôle à la place. Je fais le dessin en utilisant GDI
et l'ai essayé à la fois dans la méthode OnPaint()
et la méthode DrawItem()
sans succès. Je peux l'obtenir pour dessiner dans le OnPaint()
mais quand j'appelle la base CStatic::OnPaint()
elle dessine sur mon image.
Je dois être en mesure de le laisser dessiner comme d'habitude mais ensuite de lancer une image. Lorsque j'ai essayé de le faire dans la méthode DrawItem()
, j'ai eu un problème parce que, évidemment, il ne dessinait pas en utilisant le style SS_BLACKRECT
mais en attendant que je dessine le contrôle comme il est censé le faire.
Je suppose que ce que je pense que je cherche est l'une des trois choses. Un moyen de dessiner en utilisant GDI
après la méthode de base OnPaint()
se termine. Une façon d'avoir le contrôle dessiner le style par défaut SS_BLACKRECT
puis OWNERDRAW
l'image après. Ou le code pour imiter le dessin de SS_BLACKRECT
.
Le dernier peut être le plus facile mais je ne sais pas tout ce que j'ai besoin de configurer pour dessiner un contrôle CStatic
comme le DrawItem par défaut.
Avez-vous trouvé une solution à ce problème? – Alan