Ecrire en couleur sans changer le fond [dialogbox] [Résolu]

Gendal67 627 Messages postés mercredi 16 juin 2004Date d'inscription 24 juillet 2011 Dernière intervention - 24 nov. 2004 à 23:43 - Dernière réponse : cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention
- 26 nov. 2004 à 17:16
bsoir all! :-)

Voila, j'aimerais bcp changer le fond d'une dialogbox (ça, ça marche sans pb), mais j'aimerai ensuite rajouter des controles tels que des LTEXT etc...le pb c'est que ces LTEXT apparaissent ecrit en noir sur fond gris, comme d'habitude, ce qui gache le fond de la dialogbox...et la fenetre est moche.....qqun sait cmt faire pr contourner le pb ? merci d'avance!

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 25 nov. 2004 à 22:37
3
Merci
Salut,
Je pense que ça correspond exactement à ce que tu cherches. En fait le LTEXT est un STATIC. On le manipule donc exatement comme on fait avec les STATICs. Puisque tu connais l'identificateur de ton LTEXT, IDC_STATIC par exemple, tu peux le mettre comme paramètre à une fonction de manipulation des STATICs. Exemples:
//pour récupérer le handle du LTEXT:
HWND hLtext=GetDlgItem(hDlg,IDC_STATIC);
//pour écrire dans le LTEXT:
SetWindowText(hLtext,"Bonjour");
//ou:
SetDlgItemText(hDlg,IDC_STATIC,"Bonjour");
//etc...

hDlg étant le handle de la boite de dialogue et IDC_STATIC l'identificateur de ton LTEXT.
Pour la transparence de ton LTEXT il te suffit de copier l'exemple que je t'ai proposé et le coller dans la procédure de ta boite de dialogue. Voici un autre exemple pour gérer plusieurs LTEXTs:
case WM_CTLCOLORSTATIC:
// 1er LTEXT:
if ((HWND)lParam==GetDlgItem(hDlg,IDC_STATIC1)) 
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)GetStockObject(NULL_BRUSH);
}
// 2eme LTEXT:
if ((HWND)lParam==GetDlgItem(hDlg,IDC_STATIC2)) 
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)GetStockObject(NULL_BRUSH);
}
// 3eme LTEXT:
// if .....
return 0;

Ainsi, au lancement de la boite de dialogue tous tes LTEXTs seront totalement transparents et les petits fonds gris disparaitront.
Bonne programmation.

Merci racpp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de racpp
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 25 nov. 2004 à 00:13
0
Merci
Encore cette question...
http://www.cppfrance.com/code.aspx?id=10501

Suffit de traiter messages WM_CTLCOLORSTATIC et autres de sa categorie.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Gendal67 627 Messages postés mercredi 16 juin 2004Date d'inscription 24 juillet 2011 Dernière intervention - 25 nov. 2004 à 00:16
0
Merci
Merci bcp pr ton aide :-))

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
Commenter la réponse de Gendal67
Gendal67 627 Messages postés mercredi 16 juin 2004Date d'inscription 24 juillet 2011 Dernière intervention - 25 nov. 2004 à 00:32
0
Merci
Ecoute, BruNews, je suis désolé...je ne m'y retrouve vraiment pas dans ton appli :( ac tous ces boutons, ces scrollbars....je en sais même pas où chercher...:(

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
Commenter la réponse de Gendal67
racpp 1910 Messages postés vendredi 18 juin 2004Date d'inscription 14 novembre 2014 Dernière intervention - 25 nov. 2004 à 02:31
0
Merci
Salut,
Voici un petit exemple pour rendre le fond d'un STATIC transparent:
case WM_CTLCOLORSTATIC:
if ((HWND)lParam==hStatic) 
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)GetStockObject(NULL_BRUSH);
}
return 0;

hStatic est le handle du STATIC. Tu peux le remplacer par GetDlgItem(hDlg,IDC_STATIC).....
Commenter la réponse de racpp
Gendal67 627 Messages postés mercredi 16 juin 2004Date d'inscription 24 juillet 2011 Dernière intervention - 25 nov. 2004 à 17:29
0
Merci
Oui merci, mais en quoi c'est sensé m'aider ?

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
Commenter la réponse de Gendal67
Gendal67 627 Messages postés mercredi 16 juin 2004Date d'inscription 24 juillet 2011 Dernière intervention - 25 nov. 2004 à 22:38
0
Merci
Oui, oui, merci! C'est exactement ça!! Le "truc", c'est que bruNews me l'as expliqué il ya qq heures déja :p
Merci quand même de t'etre donner du mal pr m'aider :-)

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
Commenter la réponse de Gendal67
cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 26 nov. 2004 à 17:16
0
Merci
Et puis c'est pas perdu pour tout le monde. :)

eRoZion
Commenter la réponse de cs_eRoZion

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.