'Transparence' des controles d'une form

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 2 juil. 2004 à 22:51
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 2 juil. 2004 à 23:58
Bonjour,

VOila, je 'dessine' le fond de ma form a l'aide d'une fonction maison, mais mes controles n'adoptent pas cette couleur pour leur propre fond, j'ai defini la propriété transparent a TRUE, mais rien ni fait..SI kelkun a une solution, merci beaucoup !

++

Alhexman

7 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
2 juil. 2004 à 23:13
Salut,

Il faut que quand tu recois le message WM_CTLCOLORSTATIC tu fasses un SetBkMode((HDC) wParam, TRANSPARENT);

Exemple :

case WM_CTLCOLORSTATIC:
if(GetWindowLong((HWND)lParam, GWL_ID) == 8001) {
SetBkMode((HDC) wParam, TRANSPARENT);
}

@+
Arnotic,
Admin CS, MVP Visual C++
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
2 juil. 2004 à 23:16
Attention j'ai oublié de préciser que le message WM_CTLCOLORSTATIC est uniquement pour les controles static pour les autres ca peut être WM_CTLCOLORLISTBOX, ...

Voir : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/indivcontrol.asp

Pour plus d'informations

@+
Arnotic,
Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
2 juil. 2004 à 23:40
re,

Le code ke tu m'as donné ne fonctionne pas, mm pour un controle static, j'ai bien testé l'entrée du prog ds le case, celui ci y rentre bien, mais ca ne change rien...
Ca vient ptet du fait ke je dessine moi mm le fond de ma form ?

Merci ++

alhexman
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 juil. 2004 à 23:43
Si je me souviens bien, j'ai fait un exemple de static transparent qui met du texte sur une image, faut fouiller dans mes sources.

ciao...
BruNews, Admin CS, MVP Visual C++
0

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

Posez votre question
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
2 juil. 2004 à 23:46
Vérifie l'ID de ton contrôle (8001 dans mon exemple).

Effectivement une des permières sources de BruNews concerne cela. Tu y le code que je t'ai montré plus haut en action.

@+
Arnotic,
Admin CS, MVP Visual C++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 juil. 2004 à 23:47
http://www.cppfrance.com/code.aspx?ID=9674

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
2 juil. 2004 à 23:58
Ok, c bon, ton code n'est pa faux Arnotic, mais tu avais oublié de me donner la valeur a renvoyer : return (BOOL)GetStockObject(NULL_BRUSH);

Voila, merci Brunews (come dab..) et a toi oci Arnotic...

++

Alhexman
0
Rejoignez-nous