cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 2004
-
20 sept. 2002 à 22:58
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
11 févr. 2005 à 21:59
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 ...
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 21 sept. 2002 à 12:02
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));
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 21 sept. 2002 à 14:28
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
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 21 sept. 2002 à 15:02
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
cs_Mike
Messages postés70Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention24 juillet 20041 21 sept. 2002 à 15:25
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
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 7 janv. 2003 à 19:09
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.