SetTextColor win32

Signaler
Messages postés
70
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
24 juillet 2004
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Salut je voudrais pouvoir changer la couleur du texte d'une editBox en win32. et eventuellement la couleur de fond de l'editBox osi. Si quelqu'un pouver m'aider ...
A voir également:

11 réponses

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Au niveau de ta fenêtre, tu dois intercepter le message WM_CTLCOLOREDIT (si mes souvenirs sont bons). Le paramètre WPARAM contient le HDC où tu utilises effectivement SetTextColor() et le paramètre LPARAM contient le HWND du contrôle. Ensuite, tu retournes un HBRUSH pour peindre le fond.

Exemple:

// Get the devise context
HDC hDc=reinterpret_cast<HDC>(wParam);

// Set background mode to transparent
SetBkMode(hDc, TRANSPARENT);

// We only change the color of title
if (GetDlgItem(m_hWnd, IDC_STC_TITLE) == reinterpret_cast<HWND>(lParam))
SetTextColor(hDc, RGB(0, 0, 0x99));

return reinterpret_cast(GetSysColorBrush(COLOR_3DFACE));
Messages postés
70
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
24 juillet 2004
1
OK je te remecrie ça m'as trop aider. Mais tu c pas comment changer la couleur de fond de l'editbox, parceque avec SetBkColor ça me change seulement la couleur du contour du texte et pas la couleur de fond de l'editbox ( je crois que c en relation avec setBkMode ), mais ça se trouve c pas la bonne fonction y'a p'être une autre fonction pour changer la couleur de fond de l'editBox, si tu pouvais m'aider sur ce coup ça serait sympa.
Merci d'avance
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Même si tu retournes un HBRUSH par return ca change pas de couleur ?
Messages postés
70
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
24 juillet 2004
1
Bah non ça change juste la couleur autour du texte mais pas la couleur de fond de l'edit box. En fé quand j'ecris du texte la couleur et donc bien celle de SetColorText et autour du texte j'ai la couleur de SetBkColor donc je pense qu'en fé il doit y avoir une autre fonction pour changer la couleur de fond de l'edit ou alors je l'utilise mal. Sinon ouais je retourne un Hbrush, les couleurs marche bien mais j'arrive pas a changer la couleur de fond de l'edit juste la couleur du texte et son contour, si tu ve voir esssaie ça

SetTextColor ((HDC)wParam, RGB(12, 2, 232));
SetBkMode((HDC)wParam,OPAQUE);
SetBkColor((HDC)wParam, RGB(110, 113, 232));
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Essayes de remplacer

SetBkMode((HDC)wParam,OPAQUE);

par

SetBkMode((HDC)wParam,TRANSPARENT);
Messages postés
70
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
24 juillet 2004
1
non mais la ça inhibe seulement
SetBkColor((HDC)wParam, RGB(110, 113, 232));
mais la couleur de l'editbox ne change pas, par contre on ne voit plus le la couleur qui entoure le texte ( normale ), moi je ve simplement chnager la couleur de l'edit. Je c pas si tu vois bien le truc.

SetTextColor ((HDC)wParam, RGB(12, 2, 232));
-> change la couleur du texte

SetBkColor((HDC)wParam, RGB(110, 113, 232));
-> change la couleur de contour du texte une forme de rectangle elle est inhibé si on met TANSPARENT a setkmode et visible si on met OPAQUE mais ds tt les cas ça ne change pas la couleur de l'editbox.

Alors soit j'utilise mal la fonction soit c simplement une autre fonction
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

Dans ce cas précis, j'ai pas l'impression que SetBkColor() fasse grand chose. Tu as un peu étudié la MSDN à ce sujet ?
Messages postés
70
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
24 juillet 2004
1
Ouais j'ai tt regardé
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Vous vous trompez complètement : SetBkColor change
l'arrière-plan du texte, pas celui du controle !
La couleur de fond de l'EditBox dépend seulement de ce qu'on retourne, et il faut retourner un brush:

return (BOOL) CreateSolidBrush(RGB(128, 0, 0));

au lieu de

return (BOOL)(GetSysColorBrush(COLOR_3DFACE));
qui dit qu'il faut retourner la couleur COLOR_3DFACE.
Messages postés
3
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2005

J'aimerais pouvoir changer la couleur du contour d'une fenêtre comme du style msn.
je travaille sous C++ Builder 4

Merci
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Poste un nouveau message: personne ne te répondra ici