WM_CTLCOLORSTATIC & slider control api win32

youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 17 avril 2004 à 15:15
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 17 avril 2004 à 15:54
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

15 réponses

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

ciao...
BruNews, Admin CS, MVP Visual C++
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
17 avril 2004 à 15:30
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2004 à 15:34
if(GetWinLg == IDC_RED) break;
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
17 avril 2004 à 15:36
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
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2004 à 15:37
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;
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 avril 2004 à 15:39
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++
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
17 avril 2004 à 15:41
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
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2004 à 15:41
bien sur que mon truc d'avant marche (j'ai essayé)

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

??
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 avril 2004 à 15:47
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++
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
17 avril 2004 à 15:49
ton choix des couleurs me convient je vais fouiller voir
merci brunews
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2004 à 15:50
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
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2004 à 15:54
tiens d'ailleurs c'est bizarre, je m'apercois que IDC_STATIC n'est pas défini... on doit écrire -1
0
Rejoignez-nous