Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

AW: ScreenShot eines Fensters machen dessen Inhalt größer Formgröße ist

  Alt 16. Mär 2013, 21:53
Ich habe diesen Post gefunden.

Wenn ich den so aufrufe, dann erhalt ich nur ein schwarzes Bitmap:

Delphi-Quellcode:
procedure PrintWindow(Wnd: HWND; ATo: TBitmap);
var
   hDCMem : HDC;
   DC : HDC;
   rect : TRect;
   bmp : HBITMAP;
   hOld : HGDIOBJ;
begin
   hDCMem:=CreateCompatibleDC(0);

   GetWindowRect(Wnd, rect);

   bmp:=0;

   DC:= GetDC(Wnd);
   bmp:= CreateCompatibleBitmap(DC, rect.Right-rect.Left, rect.Bottom-rect.Top);
   ReleaseDC(Wnd, DC);

   hOld:=SelectObject(hDCMem, bmp);
   SendMessage(wnd, wm_Print, hDCMem, PRF_CHILDREN or PRF_CLIENT or PRF_ERASEBKGND or PRF_NONCLIENT or PRF_OWNED);

   selectObject(hDCMem, hold);
   DeleteObject(hDCMem);

   ATo.FreeImage;
   ATo.Handle:=bmp;
end;

procedure ScreenShot_aktives_Fenster(Bild: TBitMap);
var
  h: THandle;

begin
  h := GetForeGroundWindow;

  If h <> 0 then
    PrintWindow(h, Bild);
end;
Ist mein Aufruf falsch?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat