Bonjour,
Je cherches à rendre un radio et un checkbox transparent.
Le fond est une image BMP.
Si je traite comme un static sans les thèmes XP ça fonctionne mais dès que
je les active, j'ai deux problème :
- le fond du radio reprend le fond de la fenêtre mais à partir du haut
- le fond du checkbox est noir ainsi que le texte.
Pourtant je n'ai pas changé de code et j'utilise la méthode du
WM_CTLCOLORSTATIC.
Merci de m'aider et bonne prog,
Bonjour,
Je cherches à rendre un radio et un checkbox transparent.
Le fond est une image BMP.
Si je traite comme un static sans les thèmes XP ça fonctionne mais dès que
je les active, j'ai deux problème :
- le fond du radio reprend le fond de la fenêtre mais à partir du haut
- le fond du checkbox est noir ainsi que le texte.
Pourtant je n'ai pas changé de code et j'utilise la méthode du
WM_CTLCOLORSTATIC.
Merci de m'aider et bonne prog,
Bonjour,
Je cherches à rendre un radio et un checkbox transparent.
Le fond est une image BMP.
Si je traite comme un static sans les thèmes XP ça fonctionne mais dès que
je les active, j'ai deux problème :
- le fond du radio reprend le fond de la fenêtre mais à partir du haut
- le fond du checkbox est noir ainsi que le texte.
Pourtant je n'ai pas changé de code et j'utilise la méthode du
WM_CTLCOLORSTATIC.
Merci de m'aider et bonne prog,
> Quand c'est "themed", il faut appeler DrawThemeParentBackground()
> Quand c'est "themed", il faut appeler DrawThemeParentBackground()
> Quand c'est "themed", il faut appeler DrawThemeParentBackground()
Merci bien pour ta réponse mais les exemples sans MFC ne sont pas coura nts
sur le web.
Peux-tu m'aider à transformer ce code en API Win32 que j'ai pris sur un site
dont le code source est public, sur ce code si on active les thème le s tatic
est noir au lieu d'avoir le fond voulu :
Merci bien pour ta réponse mais les exemples sans MFC ne sont pas coura nts
sur le web.
Peux-tu m'aider à transformer ce code en API Win32 que j'ai pris sur un site
dont le code source est public, sur ce code si on active les thème le s tatic
est noir au lieu d'avoir le fond voulu :
Merci bien pour ta réponse mais les exemples sans MFC ne sont pas coura nts
sur le web.
Peux-tu m'aider à transformer ce code en API Win32 que j'ai pris sur un site
dont le code source est public, sur ce code si on active les thème le s tatic
est noir au lieu d'avoir le fond voulu :
> Ce code n'est pas très bon.
On n'a pas besoin de subclasser les static controls.
Il faut appeler DrawThemeParentBackground() dans WM_CTLCOLORSTATIC et
dessiner dans WM_PRINTCLIENT + WM_PAINT (avec une même fonction en
distinguant le DC (celui de wParam ou de BeginPaint())
Pour les Edit controls, pas besoin de WM_CTLCOLOREDIT, le plus simple
est de les remplacer par des RichEdit controls en subclassant et
traitant WM_CHAR, comme dans la KB639660 italienne..
> Ce code n'est pas très bon.
On n'a pas besoin de subclasser les static controls.
Il faut appeler DrawThemeParentBackground() dans WM_CTLCOLORSTATIC et
dessiner dans WM_PRINTCLIENT + WM_PAINT (avec une même fonction en
distinguant le DC (celui de wParam ou de BeginPaint())
Pour les Edit controls, pas besoin de WM_CTLCOLOREDIT, le plus simple
est de les remplacer par des RichEdit controls en subclassant et
traitant WM_CHAR, comme dans la KB639660 italienne..
> Ce code n'est pas très bon.
On n'a pas besoin de subclasser les static controls.
Il faut appeler DrawThemeParentBackground() dans WM_CTLCOLORSTATIC et
dessiner dans WM_PRINTCLIENT + WM_PAINT (avec une même fonction en
distinguant le DC (celui de wParam ou de BeginPaint())
Pour les Edit controls, pas besoin de WM_CTLCOLOREDIT, le plus simple
est de les remplacer par des RichEdit controls en subclassant et
traitant WM_CHAR, comme dans la KB639660 italienne..
Le but est à partir de ce code, le modifier pour ensuite dessinner tout es
sortes de contrôles transparent edit, static, checkbox sans modifier le code
et sans dessiner tout soi même.
Parce que un WM_PAINT c'est bien mais pour dessiner le contenu d'un edit et
gérer ce qu'il y a dedans c'est plus simple de le rendre transparent et de
laisser Windows faire le reste.
Sinon je ne connais pas l'italien.
Le but est à partir de ce code, le modifier pour ensuite dessinner tout es
sortes de contrôles transparent edit, static, checkbox sans modifier le code
et sans dessiner tout soi même.
Parce que un WM_PAINT c'est bien mais pour dessiner le contenu d'un edit et
gérer ce qu'il y a dedans c'est plus simple de le rendre transparent et de
laisser Windows faire le reste.
Sinon je ne connais pas l'italien.
Le but est à partir de ce code, le modifier pour ensuite dessinner tout es
sortes de contrôles transparent edit, static, checkbox sans modifier le code
et sans dessiner tout soi même.
Parce que un WM_PAINT c'est bien mais pour dessiner le contenu d'un edit et
gérer ce qu'il y a dedans c'est plus simple de le rendre transparent et de
laisser Windows faire le reste.
Sinon je ne connais pas l'italien.
> Oui, c'est bien ce que j'avais compris.
Je parlais du WM_PAINT de la fenêtre principale (pour blitter une
bitmap en fond par exemple), pas des childs.
J'ai refait un test sous XP avec Static, Radio, Checkbox, RichEdit et
la transparence marche bien, avec ou sans Manifest (avec par ex
DllGetVersion() sur "comctl32.dll" pour tester si Manifest et ne pas
appeler DrawThemeParentBackground())
> Oui, c'est bien ce que j'avais compris.
Je parlais du WM_PAINT de la fenêtre principale (pour blitter une
bitmap en fond par exemple), pas des childs.
J'ai refait un test sous XP avec Static, Radio, Checkbox, RichEdit et
la transparence marche bien, avec ou sans Manifest (avec par ex
DllGetVersion() sur "comctl32.dll" pour tester si Manifest et ne pas
appeler DrawThemeParentBackground())
> Oui, c'est bien ce que j'avais compris.
Je parlais du WM_PAINT de la fenêtre principale (pour blitter une
bitmap en fond par exemple), pas des childs.
J'ai refait un test sous XP avec Static, Radio, Checkbox, RichEdit et
la transparence marche bien, avec ou sans Manifest (avec par ex
DllGetVersion() sur "comctl32.dll" pour tester si Manifest et ne pas
appeler DrawThemeParentBackground())
As-tu un exemple complet à me proposer compilable avec g++ ? comme celu i que
tu fais dans ta description ?
As-tu un exemple complet à me proposer compilable avec g++ ? comme celu i que
tu fais dans ta description ?
As-tu un exemple complet à me proposer compilable avec g++ ? comme celu i que
tu fais dans ta description ?