![]() |
Über den gesamten Bildschirm zeichnen
Wenn ihr direkt über alle Fenster drüber hinweg zeichnen wollt und dazu bequem eine Canvas nehmen wollt, macht es so:
Delphi-Quellcode:
Wenn ihr dann über den gesamten Bildschirm gemalt habt, könnt ihr mit folgendem aufruf ALLE Fenster neuzeichnen.
var
DesktopDC: HDC; DesktopCanvas: TControlCanvas; begin DesktopDC := GetDC(0); if DesktopDC = 0 then begin //Hier Fehlerbehandlung einfügen end else try DesktopCanvas := TControlCanvas.Create; try DesktopCanvas.Handle := DesktopDC; //Hier Zeichnen, z. B. DesktopCanvas.Draw(0, 0, Application.Icon); finally DesktopCanvas.Free; end; finally ReleaseDC(0, DesktopDC); end; end;
Delphi-Quellcode:
Wenn ihr nur in einem Bereich gezeichnet habt, übergebt als zweites den Zeiger auf den rechteckigen Bereich.
RedrawWindow(0, nil, 0, RDW_UPDATENOW or RDW_ALLCHILDREN or RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT);
Delphi-Quellcode:
Anpassungsmöglichkeiten: Bei GetDC, ReleaseDC, RedrawWindow kann statt der (ersten) 0 auch ein Fensterhandle angegeben werden. Dann wird nicht über den gesamten Bildschirm, sondern nur über ein Fenster zezeichnet (auch von Fremdanwendungen).
var MyRect: TRect;
... //z. B. MyRect := Rect(...); RedrawWindow(0, @MyRect, 0, RDW_UPDATENOW or RDW_ALLCHILDREN or RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT); Damit könnt ihr Cheats, die in einer Bildschirmecke ein unauffälliges Bildchen erscheinen lassen, programmieren ;) für eure Spielchen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 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