AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Screenshot - Verständnisfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot - Verständnisfrage

Ein Thema von hans ditter · begonnen am 27. Feb 2012 · letzter Beitrag vom 27. Feb 2012
 
Popov
(Gast)

n/a Beiträge
 
#8

AW: Screenshot - Verständnisfrage

  Alt 27. Feb 2012, 18:48
So langsam ergibt es einen Sinn.

Delphi-Quellcode:
procedure ScreenshotBook(bmp: THandle);stdcall;
var ScreenDC, CompDC: HDC;
    ScreenBitmap: HBitmap;
    h: THandle;
begin
  ScreenDC := GetDC(0); //DC des gesamten Bildschirm abfragen
  CompDC := CreateCompatibleDC(ScreenDC); //einen neuen DC anlegen, der gleich dem DC vom Bildschirm ist??
  ScreenBitmap := CreateCompatibleBitmap(ScreenDC,
                  GetDeviceCaps(ScreenDC,HORZRES),
                  GetDeviceCaps(ScreenDC,VERTRES)); //hä? ein Bitmap wird angelegt ... und dann?
  h := SelectObject(CompDC,ScreenBitmap); //das versteh ich auch nicht so genau...
  BitBlt(CompDC,0,0,GetDeviceCaps(ScreenDC,HORZRES),
         GetDeviceCaps(ScreenDC,VERTRES),ScreenDC,0,0,SRCCOPY); //klar, hier wird der Inhalt aus ScreenDC in CompDC kopiert
  BitBlt(bmp,0,0,300,300,compDC,0,0,SRCCOPY); //Inhalt von CompDC in ein mitgeliefertes Handle

  DeleteObject(SelectObject(CompDC,h)); //?? und vor allem: warum selectObject in deleteObject??
  DeleteDC(CompDC); //künstlich erzeugtes DC freigeben
  ReleaseDC(0,ScreenDC); //Freigeben des abgefragten Bildschrim-DCs
end;
Ok, GetDC ermittelt das Handle für einen Gerätekontext, CreateCompatibleDC erzeugt einen kompatiblem Gerätekontext, CreateCompatibleBitmap erzeugt eine Bitmap die für SelectObject Voraussetzung ist. BitBlt kopiert dann alles an die richtige Stelle. Zuletzt wird aufgeräumt.

Ob das alles nötig ist, weiß ich nicht, es ist aber, soweit ich es beurteilen kann, ist es so wie es sein soll.
  Mit Zitat antworten Zitat
 


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 05:19 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 by Thomas Breitkreuz