Ecrire en couleur sans changer le fond [dialogbox]

Résolu
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 - 24 nov. 2004 à 23:43
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 - 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!! :-))

8 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
25 nov. 2004 à 22:37
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.
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 nov. 2004 à 00:13
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++
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
25 nov. 2004 à 00:16
Merci bcp pr ton aide :-))

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
25 nov. 2004 à 00:32
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!! :-))
0

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

Posez votre question
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
25 nov. 2004 à 02:31
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).....
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
25 nov. 2004 à 17:29
Oui merci, mais en quoi c'est sensé m'aider ?

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
25 nov. 2004 à 22:38
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!! :-))
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
26 nov. 2004 à 17:16
Et puis c'est pas perdu pour tout le monde. :)

eRoZion
0
Rejoignez-nous