![]() |
Text auf Desktop ausgeben
Einfaches resultat, schwieriger weg. Ich möchte einen beliebigen (veränderbaren) text automatisch auf dem Desktop ausgeben der lesbar ist, egal welchen Farbton das Hintergrundbild hat. D.H. schwarzer Text bei weissem Hintergrund, weisser Text bei schwarzen Hintergrund etc. Ich dachte daran, Das das programm vor dem Ausgeben des Textes die Stelle analysiert und ein Negativbild von dem Ausschnitt erstellt was dann als Textfarbe benutzt wird.
Wäre für Ratschläge oder andere Ansätze dankbar |
Re: Text auf Desktop ausgeben
schau mal nach pen.mode:=pmxor;
|
Re: Text auf Desktop ausgeben
direktes malen auf den Desktop (getDC(0)) bringt viele Nachteile mit sich (evtl wird auf fenster gemalt, welches dann gf. verschoben wird...).
ich hab mir damals mti nem formular beholfen welches ich anhand von regions einem Schriftzug angepasst habe: ![]() //edit:link korrigiert HTH Frank |
Re: Text auf Desktop ausgeben
Erstmal sollte man klären was man unter Desktop versteht.
Wenn man den Desktop nach Microsoft-Art meint (das absolute Root-Window), dann hat man das Problem, welches Frank angesprochen hat. Meint man hingegen die Fläche, auf der sich die Icons befinden (aka SysListView) kann man das Ganze relativ einfach umsetzen:
Delphi-Quellcode:
procedure TForm1.tm_Timer1Timer(Sender: TObject);
var wnd : HWND; Canv : TCanvas; t : STring; r : TRect; begin t:=TimeToStr(now); wnd:=GetDesktopWindow; wnd:=FindWindowEx(wnd, 0, 'Progman', nil); wnd:=FindWindowEx(wnd, 0, 'SHELLDLL_DefView', nil); wnd:=FindWindowEx(wnd, 0, 'SysListView32', nil); Canv:=TCanvas.Create; Canv.Handle:=GetDc(wnd); Canv.Brush.Style:=bsClear; r:= Rect(100,100,100+Canv.TextWidth(t),100+canv.TextHeight(t)); InvalidateRect(wnd,@r,true); SendMessage(wnd, WM_PAINT,0,0); Canv.TextOut(100,100, t); Canv.Free; end; |
Re: Text auf Desktop ausgeben
gut, diese variante kannte ich noch nicht...
kannte nur die screen-lösung, aber für OnScreenDisplays bevorzuge ich doch weiterhin meine Region-Form-Variante ;) Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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