Ich versuche den Inhalt eines Panels mit unten stehender funktion zu drucken
funktioniert soweit auch aber sowohl schrift(vom TLable) als auch Bilder (TImage) werden sehr Pixelig ausgedruckt.
Mein Problem ist wie ich zB. die auflösung anpassen kann.
oder sollte ich andere Komponenten verwenden?
Delphi-Quellcode:
Procedure PrintWinControl(hWND: HWND; iLeft, iTop, iWidth, iHeight: integer);
var
c: TCanvas;
begin
iLeft := iLeft * 10;
iTop := iTop * 10;
BringWindowToTop(hWND);
c:= TCanvas.Create;
c.Handle:= GetWindowDC(hWND);
try
printer.begindoc;
//Windows.SetMapMode(printer.Canvas.Handle, MM_LOMETRIC);
printer.Canvas.CopyRect(Rect(iLeft, iTop, iLeft + iWidth * 10, iTop + iHeight * 10), c, Rect(0, 0, iWidth, iHeight));
printer.enddoc;
finally
ReleaseDC(hWND, c.handle);
c.Free;
end;
end;