ListBox, styles, SetWindowLong()
Hallo zusammen!
Ich habe vor, bestimmte Zeilen einer ListBox (die auf einem Dialog plaziert ist) grafisch besonders hervorzuheben, indem ich z.B. bestimmte Einträge mit FillRect() o.ä. aufbereite. Das Problem ist, dass die Objekte, die ich in das Steuerelement zeichne, wieder verschwunden sind, sobald ich z.B. das Fenster minimiere und anschließend wieder maximiere, da der gesamte Dialog ja dann neu gezeichnet wird.
Nun möchte ich die Nachricht WM_DRAWITEM abfragen, um anschließend erneut meine Listeneinträge "aufzupeppen", wie oben beschrieben.
Zu diesem Zweck habe ich den Style des ListBox-Steuerelementes auf
LBS_OWNERDRAWVARIABLE gesetzt.
pList = (CListBox*) GetDlgItem(IDC_LIST2);
hwnd = pList->GetSafeHwnd();
SetWindowLong(hwnd,GWL_STYLE, LBS_OWNERDRAWVARIABLE);
Allerdings bekomme ich NIEMALS eine Nachricht vom Typ WM_DRAWITEM.
Kann mir jemand sagen, was da falsch läuft???
Gruß
ral
|