![]() |
TreeView HintergrundProbleme unter XP
Moin,
Inzwischen funktioniert zwar (fast) alles mit dem TreeView, doch am Wochenende ist mir noch ein höchst ärgerliches Problem aufgefallen. Bei der Reaktion auf die Message WM_Paint wird ein
Delphi-Quellcode:
gemacht, allerdings erscheint das Bild nun unter WinXP im Vordergrund! Dass heisst der Baum ist nicht mehr zu sehen, was natürlich nicht so prickelnd ist.
If (Message.Msg = WM_Paint ) then
begin Rect:=TreeView1.Selected.DisplayRect(TRUE); DC := GetDC( TreeView1.Handle ); SetBkMode(DC,TRANSPARENT); with TreeView1.Canvas Do begin Brush.Color:= clyellow; FillRect(Rect); Font.Color:= clactivecaption; TextOut(Rect.Left, Rect.Top, TreeView1.selected.text); Font.Color:=clblack; end; end; Nachtrag: Ok - es liegt wohl doch nciht an der MessageRoutine, sondern der Fehler tritt vor allem auf, wenn ein Tooltip im TreeView angezeigt wird. Wird TreeView1.Tooltips auf FALSE gesetzt funktioniert das ohne Probleme. Wie und wo ist denn das Ereignis/Message das/die ausgelöst wird, wenn ein Tooltp angezeigt wird? |
Re: TreeView HintergrundProbleme unter XP
Ok - Ich hab jetzt eine passende Systemnachricht gefunden
Delphi-Quellcode:
Allerdings führt das natürlich zu einem Flackern (Da gabs doch mal diesen Befehl um das schneller zu machen - wie war denn der?).
If (Message.msg=WM_NOTIFY)
then TreeView1.refresh; Das Problem, dass das Hintergrundbild über den Items liegt - kommt wohl daher dass Delphi bei einem Tooltipaufruf zwar dass HintergrundBild neu reinzeichnet aber nicht die Items (Um das zu unterbinden hätte ich jetzt obigen Code benutzt...) - Allerdings ist das unsinnig. Gibt es vielleicht eine Möglichkeit, das Zeichnen des Bildes zu unterbinden? Danke schonmal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz