CTreeCtrl

CodeFatal

Erfahrenes Mitglied
Moin moin,

Nachdem ich die Früchte meiner letzten Frage geerntet habe, ergibt sich ein weiteres Problem.
Ich habe ein CMyTreeCtrl:public CTreeCtrl dieses hat einen "Transparenten" Hintergrund.
Dies erreiche ich indem ich mir bei der ersten WM_PAINT msg den Hintergrund in einem CBitmap Object speichere und dann bei Bedarf immer nach zeichne.
Leider ist die Zeichen Routine von CTreeCtrl fleißiger als gedacht. Das teil merkt sich wie der Hintergrund aussah, bevor ein Knoten erweitert wurde und verschiebt diesen dann einfach in die gewünschte Richtung.
Kann man das irgendwie erreichen, das sich das Teil immer auf den weißen Standard Hintergrund zeichnet :confused:

Ich nutze zur Darstellung CWnd::DefWindowProc( WM_PAINT, (WPARAM)dcsrc.GetSafeHdc(), 0 )

Gruss Michael
 
Schau' Dir doch mal die Funktion 'OnCustomdraw' vom CTreeView an (NM_CUSTOMDRAW). Vielleicht hilft dir das weiter.
 
Moin moin,
das Problem liegt ja darin, das ich selbst zeichne und den Hintergrund verändere:-)
Was passiert ist für die Performance ja auch net verkehrt aber indiesem Fall gehts halt nur um die Optik.

Aber zu deinem Tipp, ich hab noch nie mit den XXXView's gearbeitet. wo ist der grosse Vorteil zu den gleichen Objekten ohne View. Bis jetzt bin ich ganz gut mit den "normalen" zurechtgekommen und kann mich nicht beklagen.

Gruss Michael
 
Ich verwende es, weil es bei mir ein Fenster in einem CSplitterWnd ist. Dazu brauche ich ein CView. Außerdem hat das CTreeView, glaube ich, eben mehr Nachrichten (wie z.B. NM_CUSTOMDRAW).
 
Das NM_CUSTOMDRAW bekommst du auch ohne View. Die CViews sind nur eine Kapselung von diversen Controls für die SDI/MDI-Ansicht.
 
Zurück