WM_CTLCOLORSTATIC & slider control api win32

Signaler
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
slt j'aurai besoin d'un coup de main

j'ai mis un slider control dans ma boite de dlg et vu ke j'utilise WM_CTLCOLORSTATIC pour changer la couleur d'un text ceci fais changer la couleur du slider en vert.....

en regardant dans msdn j'ai vu ke il disait:
"Edit controls that are not read-only or disabled do not send the WM_CTLCOLORSTATIC message; instead, they send the WM_CTLCOLOREDIT message"

donc j'ai testé avec WM_CTLCOLOREDIT et en renvoyant un
GetStockObject(WHITE_BRUSH); car ceci changer tout mes edit conrol de couleur.

je suppose k'il fo mettre un SetBkMode((HDC) wParam, TRANSPARENT);

mais je sais po ou!!!

merci de votre aide
A voir également:

15 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
je n'ai pas très bien compris ce que tu veux faire
Tu veux que ton slider ne change pas de couleur?
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
exactement
mais la question est que a prioris les sliders doivent etre static puiske le fond change de couleurs....
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Reagarde dans WM_CTLCOLORSTATIC le id du static avec GetWindowLong.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
c la ou justement ou j'en était tu as raison brunews
j'ai ca

if(GetWinLg == IDC_RED)
{
SetBkMode((HDC) wParam, TRANSPARENT);
return (BOOL) GetStockObject();
}
break;

ou idc_red est le slider le truc c ke tout depend du

return (BOOL) GetStockObject();

j'ai essayer NULL_BRUSH mais c en noir si je met
WHITE_BRUSH, c en blanc etc...

mais j'arrive po a le faire transparent
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
if(GetWinLg == IDC_RED) break;
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
non bien essayé mais ca marche po eheh :)

j'ai essayer de retourner SetBkMode((HDC) wParam, TRANSPARENT);

mais ca le met en noir

lol je galère
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Si tu veux changer la couleur des statics seulement, tu n'as qu'a regarder la classe de la fenêtre

char lpClassName[100];
GetClassName((HWND)lParam, lpClassName, 100);
if(!strcmp(lpClassName, "Static"))
{
// On change de couleur
}
break;
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
mais non, je maintiens que se fait comme j'ai dit.
Va voir "CHOIX DE COULEURS" dans mes sources.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
ouai je vais aller regarder choix des couleurs, le truc c ke je veux po de couleurs, je veux ke cela reste transparent

enfin je regarde
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
bien sur que mon truc d'avant marche (j'ai essayé)

if((HWND)lParam == GetDlgItem(hDlg, IDC_SLIDER1))
break;
return hBrush;
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
a koi correspond ton hBrush

??
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
vecchio56 > bien entendu que fonctionne mais si tu en as plusieurs sera trop long de faire des GetDlgItem pour chaque comparaison.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
1
ton choix des couleurs me convient je vais fouiller voir
merci brunews
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
ah oui je suis bête, j'avais oublié que tous les statics avaient le même ID, tu as raison

youpiyoyo> c'est juste un Brush comme ca qu'il faut créer avant
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
tiens d'ailleurs c'est bizarre, je m'apercois que IDC_STATIC n'est pas défini... on doit écrire -1