AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Grafik / Sound / Multimedia Delphi Über den gesamten Bildschirm zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Über den gesamten Bildschirm zeichnen

Ein Thema von FAlter · begonnen am 22. Jul 2007
Antwort Antwort
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

Über den gesamten Bildschirm zeichnen

  Alt 22. Jul 2007, 19:50
Wenn ihr direkt über alle Fenster drüber hinweg zeichnen wollt und dazu bequem eine Canvas nehmen wollt, macht es so:
Delphi-Quellcode:
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;
Wenn ihr dann über den gesamten Bildschirm gemalt habt, könnt ihr mit folgendem aufruf ALLE Fenster neuzeichnen.
RedrawWindow(0, nil, 0, RDW_UPDATENOW or RDW_ALLCHILDREN or RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT); Wenn ihr nur in einem Bereich gezeichnet habt, übergebt als zweites den Zeiger auf den rechteckigen Bereich.
Delphi-Quellcode:
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);
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).

Damit könnt ihr Cheats, die in einer Bildschirmecke ein unauffälliges Bildchen erscheinen lassen, programmieren für eure Spielchen.
Felix Alter
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
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