ListView Ownerdraw
-
Ich habe eine Klasse von ListView abgeleitet und in der OnDrawColumnHeader überschreiben damit die Header der Liste mit einen Farbverlauf gefüllt werden.Das klappt auch alles wunderbar,aber wenn die Header nicht die ganze Breite der Liste füllen wird ein Balken im normalen Listenheaderdesign gezeichnet.Weiss jemand von euch was ich machen muss das dieser Balken auch mit einen Farbverlaufgefüllt wird?
-
Kann mir keiner helfen?
Ich haben schon OnPaint,OnPaintBackground (UserPaint auf true) und WM_NCPAINT versucht,aber ich komme einfach nicht an an diesen Balken heran.
-
Ich kenne leider auch noch keine Lösung hierfür (da ich noch mit VS.NET 2003 arbeite), aber was wäre, wenn du einfach die letzte Spaltenbreite immer auf die Restgröße des ListViews änderst?
-
Ich habe endlich eine einen Weg gefunden um diesen häßlichen grauen Balken umzufärben.Ich verschiebe nachdem ich den letzten sichtbaren Header gezeichnet habe den Clipbereich nach rechts und zeichnen dann den Farbverlauf,außerdem habe ich OnHeaderSizeChanging und OnSizeChanged überschreiben damit bei diesen Ereignissen ein Refresh ausgeführt wird.Damit kriege ich zwar nicht den 3D-Rand weg,aber es ist besser als nichts.