Copiați fereastra de imagine

copiați fereastra de imagine

care știe cum să copiați o imagine de o altă fereastră, sau partea dorită, în cazul în care există o altă fereastră în sine, și anume nu este afișat

Trimite un mesaj fereastră sau WM_PRINTCLIENT WM_PRINT

fereastra mea este copiat. dar altcineva din anumite motive nu funcționează, aici este o bucată de cod. Explicați acest exemplu. Vă mulțumim!

BM1: = TBitMap.Create;
bm1.Width: = rMain.Right;
bm1Height: = rMain.Bottom;
# XA0; PD.Parent: = h;
# XA0; bm1.Canvas.Lock;
# XA0; # XA0; PD.DC: = bm1.Canvas.Handle;
# XA0; # XA0; SendMessage (h, WM_ERASEBKGND, integer (PD.DC), 0);
# XA0; # XA0; SendMessage (h, WM_PAINT, integer (PD.DC), 0);
# XA0; bm1.Canvas.Unlock;
form1.Canvas.Draw (0,0, BM1);


> Trimite un mesaj fereastră sau WM_PRINTCLIENT WM_PRINT

Rezultatul alb bitmar la trimiterea la fereastra altcuiva


> SendMessage (h, WM_PRINTCLIENT, integer (PD.DC), PRF_NONCLIENT);

vă cere o fereastra de imprimare în afara zonei sale de bază non-client al mesajului de imprimare zona de client.

în schimb PRF_NONCLIENT pus PRF_CLIENT sau PRF_CHILDREN

acolo [2] corecta exact?
Hendl <>0 fereastră ciudat la celelalte mesaje, cum ar fi Reacționează Gettext

aici este un alt plus
tip
PPaintData = ^ TPaintData;
TPaintData = înregistrare
# XA0; Părinte: HWND;
# XA0; DC: HDC;
se încheie;

Memorie: 0.73 MB
Timpul: 0,073 c