Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Neuzeichnen von Controls (https://www.delphipraxis.net/75954-neuzeichnen-von-controls.html)

Chris P 27. Aug 2006 19:11


Neuzeichnen von Controls
 
Hi Leute,

ich habe folgende Frage:

Wie kann man, wenn man auf einen Device Context gezeichnet hat, diesen auffordern sich neu zuzeichnen?
Zum Beispiel, wenn man auf den Desktop zeichnet.

Mit SendMessage und WM_PAINT?
Ich habe dies probiert, aber trotzdem zeichnet sich das Fenster nicht neu.
Man sieht immer noch die Spuren des Zeichnens ...

DGL-luke 27. Aug 2006 22:53

Re: Neuzeichnen von Controls
 
[msdn]Invalidate*[/msdn]

InvalidateRect gibts, es sollte sicher auch InvalidateWindow geben..... :gruebel:

SirThornberry 28. Aug 2006 06:20

Re: Neuzeichnen von Controls
 
meines Wissens gibt es kein InvalidateWindow was auch nicht notwendig ist da man bei Invalidate das Handle des Fensters übergibt

Vjay 28. Aug 2006 08:15

Re: Neuzeichnen von Controls
 
Klar gibts die, hier:

Delphi-Quellcode:
procedure invalidateWindow( const handle: integer);
begin
 invalidateRect( handle, NIL, false);
end;
:-D und wieder ein sinnloser Kommentar mehr.

Chris P 28. Aug 2006 08:56

Re: Neuzeichnen von Controls
 
Danke erstmal...

Also mein eigentliches Vorhaben:

Unterhalb des Cursors soll in einem Rechteck der vergrößerte Auschnitt angezeigt werden,
über dem sich gerade der Mauszeiger befindet. So eine Art Bildschirmlupe.

Bewege ich den Zeiger so wird das Rechteck hinterhergezogen. Soweit so gut.
Nur sieht man die Spur des Rechtecks.

Das Rechteck zeichne ich auf den Desktop DC und das Zoomen funktioniert auch schon.
Wenn man nun bei jeder Mausbewegung InvalidateRect(...) aufruft, flackert das Bild sehr.


Gibt es da eine bessere Methode?

Vjay 28. Aug 2006 15:54

Re: Neuzeichnen von Controls
 
Naja,

ich weiss nicht wie dein Programm aufgebaut ist, aber die meisten Programme, die irgendetwas mit dem "Bildschriminhalt" anstellen, machen am Anfang einen Screenshot und arbeiten dann mit diesem Bitmap.

Sprich du erstellt dein eigenes Fenster über allen anderen Fullscreen und darin kannst du dann ja nach belieben rummalern.

Chris P 29. Aug 2006 19:01

Re: Neuzeichnen von Controls
 
Ziel ist es kein eigenes Fenster zu haben sondern immer unterhalb des
Cursors zu zeichen, egal über welchem Fenster er sich befindet...

Chris P 2. Sep 2006 09:51

Re: Neuzeichnen von Controls
 
Hat keiner eine Idee?

Hawkeye219 2. Sep 2006 10:13

Re: Neuzeichnen von Controls
 
Hallo Chris P,

vielleicht kannst du dir bei diesem Projekt einige Anregungen holen.

Gruß Hawkeye

xaromz 2. Sep 2006 10:13

Re: Neuzeichnen von Controls
 
Hallo,

statt auf dem Desktop zu zeichnen, solltest Du ein Fenster erstellen, dass immer hinter dem Cursor herläuft, und auf dieses zeichnen. Damit hast Du keine Probleme mehr.

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz