?
hm..
// Erstellen...
hControl = CreateWindowEx(...,WS_VISIBLE|WS_CHILD|LBS_HASSTRINGS|LBS_OWNERDRAWFIXED,...);
// Dann WM_DRAWITEM im Eltern-Fenster abfangen
// in lParam verstecken sich die Infos über das was gezeichnet werden soll und zwar in Form von DRAWITEMSTRUCT
case WM_DRAWITEM:
{
DRAWITEMSTRUCT *dis = (DRAWITEMSTRUCT*)lp;
if( dis->hwndItem == hControl ) { // Prüfen welche Listbox gezeichnet wird
COLORREF bgColor;
// Falls Eintrag selektiert dann roter Hintergrund, sonst grün
if( dis->itemState & ODS_SELECTED )
bgColor = RGB(255,0,0);
else
bgColor = RGB(0,255,0);
// Rechteck für Hintergrund zeichnen
HBRUSH hbr = CreateSolidBrush(bgColor);
FillRect(dis->hDC,&dis->rcItem,hbr);
DeleteObject(hbr);
// Den Text des Items nehmen und mit Textout darstellen
char buf[100];
SendMessage(hControl,LB_GETTEXT,dis->itemID,(long)buf);
SetBkColor(dis->hDC,bgColor);
TextOut(dis->hDC, dis->rcItem.left, dis->rcItem.top, buf, strlen(buf));
}
return 0;
};
Das hab ich hier im Forum gefunden, da ich alle Dateien mit einer bestimmten Endung (zB. .txt) färben möchte, wäre das aber ein ziemliches geraffel..
Gibts ne möglichkeit einen Treeview oder sowas ähnlich DlgDirList()
zu füttern? Oder noch was besseres?
Falls nicht, werd ich wohl die ownerdraw Technik benutzen müssen..
Besten Dank trotzdem schonmal