2009-12-27 1 views
0

J'ai construit un contrôle personnalisé, et avec le support de thème sur il semble très étrange. Y at-il un moyen de faire en sorte qu'il dessine toujours avec des thèmes désactivés, même si l'application est construite avec le support de thème?Existe-t-il un moyen d'empêcher un bouton de dessiner un contour lorsqu'il est sélectionné?

EDIT: J'ai trouvé un moyen de les désactiver et cela n'a pas beaucoup aidé. Le problème est que c'est un bouton spécial descendu de TBitBtn, et chaque fois que le bouton est sélectionné, il essaie de tracer une bordure autour de lui avec une ligne pointillée et cela devient gênant. Comment puis-je désactiver pour?

Répondre

3

Vous pouvez essayer de copier la mise en œuvre de TBitBtn.DrawItem et modifiez-le selon vos besoins. Une recherche de IsFocused dans le code devrait vous donner un guide.

Pour appeler votre code corrigé, vous devez également lier dans la méthode CNDrawItem en implémentant un gestionnaire de messages similaire.

+0

Merci! J'avais déjà dû copier cette fonction pour que tout fonctionne correctement. IsFocused était exactement ce que je cherchais. –

0

u peut désactiver le thème d'un composant en utilisant la fonction SetWindowTheme trouvée dans UxTheme.pas

cela désactive le thème d'un bouton et une barre de progression

... 
SetWindowTheme(Button.Handle, ' ', ' '); 
SetWindowTheme(ProgressBar.Handle, ' ', ' '); 
... 
Questions connexes