Utilisateur anonyme
-
7 juin 2004 à 17:44
Utilisateur anonyme -
7 juin 2004 à 23:13
Bonjour,
Je créé 2 edit à l'aide de CreateWindowEx() en readonly (style ES_READONLY).
Jusqu'à maintenant, la couleur de fond de ces 2 edit était grise.
Maintenant, toujours avec CreateWindowEx(), je rajoute un static dans lequel je mets un texte.
Ce texte, je le veux en rouge.
Je mets donc le code suivant dans la procédure de callback de ma fenêtre mère :
çà marche, le texte est bien en rouge.
Mais ce que je ne comprends pas, c'est qu'avec le code ci-dessus, la couleur de fond de mes 2 edit en readonly est passée au blanc.
Pourquoi ?
çà y est j'ai compris : le problème venait du fait que l'instruction return se trouvait dans le if. Dans les autres cas (et donc pour les edit readonly), le case ne renvoyait rien.
Pour modifier seulement la couleur du texte de ce static, il faut faire comme ceci :
Arf !!!
Finalement, je me suis aperçu en faisant la modification ci-dessus que j'avais un gros bug d'affichage dans mon programme, avec les fameux edit.
Et j'ai enfin trouvé la solution : mon code du début était bon, mais j'avais oublié un détail très important de la documentation, à propos du message WM_CTLCOLORSTATIC :
Default Action
The DefWindowProc function selects the default system colors for the static control.