Comment écrire en couleur dans un LISTBOX
Bonjour,
Pour choisir ma police et ma couleur d’écriture dans un contrôle list, j’utilise la séquence suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| clectrlist=GetDlgItem(Hdlg1, IDC_buf);
hdc=GetDC(clectrlist);
ZeroMemory(&lf, sizeof(LOGFONT));
lstrcpy(lf.lfFaceName,"Arial");
lf.lfHeight = 15;
lf.lfItalic = false;
lf.lfWeight = FW_BOLD;
NewFont = CreateFontIndirect(&lf);
OldFont = SelectObject(hdc,(HGDIOBJ)NewFont);
SetTextColor(hdc, 0x0000FF); // couleur bleue
SendMessage(clectrlist, WM_SETFONT, (WPARAM)NewFont, (LPARAM)0);
// initialisation du LISTBOX
for(i=0; i<TTABKEYS; i++) SendMessage(clectrlist, LB_ADDSTRING, (WPARAM)0, (LPARAM)(LPTSTR)TABKEYS[i]); |
La police que j’ai sélectionnée (Arial,15,gras) est bien utilisée par Windows pour écrire dans le LISTBOX, par contre j’écris toujours en noir alors que la couleur choisie est bleue, il semblerait que la fonction:
Code:
SetTextColor(hdc, 0x0000FF);
qui marche dans le cas d’un TextOut soit inefficace dans le cas présent. Faut-il utiliser une autre fonction que SetTextColor ? Merci