CTreeCtrl Problem!
-
Hallo Forum,
kann man die Rootitems von diesen CTreeCtrl Kontrolls farbig darstellen wenn sie
unterelemente haben??
Hat jemand so was schon gemacht!?Ich hab versucht mit der ON_NOTIFY()
// in MessageMap ON_NOTIFY(NM_CUSTOMDRAW, IDC_TREE1, OnCustomDraw) //.... BOOL CWeb::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR ); *pResult = CDRF_DODEFAULT; CTreeCtrl* bItem = (CTreeCtrl *) pLVCD->nmcd.lItemlParam ; CString csItemText; switch (pLVCD->nmcd.dwDrawStage) { case CDDS_PREPAINT : *pResult = CDRF_NOTIFYITEMDRAW ; break ; case CDDS_ITEMPREPAINT : if ( bItem ) // das ist Problem, ist immer NULL!!!! Warum?? { pLVCD->clrTextBk = crBlau; pLVCD->clrText = crGruen; } break ; } return TRUE; }Leider hab ich nie den Bezug auf das Control, ich möchte wenn dies weiter Unterelemente hat, z.B. Grün dargestellt wird, hier ist nur ein teil der Funktion
um mein Versuch zu zeigen, was muß noch erweitert werden damit das funktioniert...Danke
pixel
-
pixel schrieb:
CTreeCtrl* bItem = (CTreeCtrl *) pLVCD->nmcd.lItemlParam ;Dieser cast ist unsinnig. Du mbekommst hier die Daten die im TVITEM::lParam eingetragen hast.
pixel schrieb:
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );Das ist ein Treeview und kein ListCtrl, also ist es eine NMTVCUSTOMDRAW!
Sieh DIr mal das Beispiel
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q248496
an
-
Hallo,
danke für den Link, erledigt! Zwar nicht ganz so wie in dem Beispiel aber es tut das was ich gewollt habe!
Einzelnen Treeitems nach kriterien unterschiedliche Farben geben....mfg
pixel