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
???
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), ...
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.
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?
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.
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.
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?
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?