OVH Cloud OVH Cloud

Modification des couleurs

3 réponses
Avatar
Grég
Bonjour,

Je me demandais s'il est possible de modifier avec une manière facile la
couleur dans une fenêtre MFC.

J'ai pour le moment deux possibilités :

- Employer la fonction SetSysColors (ce qui ne me convient pas car cela
change les couleurs de Windows pour tous les programmes pendant l'exécution
du programme)
- Dériver la fonction de dessin pour le chaque un des composants (mais cela
est un travail long et fastidieux dont je me passerai bien)

Est-il possible de modifier directement la couleur retournée par GetSysColor
???

Y a-t-il une autre possibilité ???

Merci d'avance.

Grég

3 réponses

Avatar
Christian ASTOR
Grég wrote:

Je me demandais s'il est possible de modifier avec une manière facile la
couleur dans une fenêtre MFC.



WM_CTLCOLOR*, OD (button), ...
Avatar
Christian ASTOR
Grég wrote:

a.. CTLCOLOR_BTN Button control



Non, pas button : OD (Owner-Drawn)

Mais je ne peux pas définir la couleur de fond de mon menu qui utilise
toujours la couleur système COLOR_MENU (ou COLOR_MENUBAR sous XP). Comment
puis-je modifier cette couleur ou une autre couleur système?



Comme pour les boutons : OD.
Avatar
Grég
Hello,

Si j'ai bien compris la réponse :

WM_CTLCOLOR*, OD (button), ...



Il faut passer par la fonction OnCtlColor. En utilisant cela je peux en
effet redfinir les controls suivant :

a.. CTLCOLOR_BTN Button control
a.. CTLCOLOR_DLG Dialog box
a.. CTLCOLOR_EDIT Edit control
a.. CTLCOLOR_LISTBOX List-box control
a.. CTLCOLOR_MSGBOX Message box
a.. CTLCOLOR_SCROLLBAR Scroll-bar control
a.. CTLCOLOR_STATIC Static control

Mais je ne peux pas définir la couleur de fond de mon menu qui utilise
toujours la couleur système COLOR_MENU (ou COLOR_MENUBAR sous XP). Comment
puis-je modifier cette couleur ou une autre couleur système?

Merci.

Grég.