Egy screenshot az aktív ablak

Egy screenshot az aktív ablak

Csinálok egy ilyen eljárás

De valamilyen oknál fogva, ha az ablak maximalizált az üzenet képernyőn rögzíti a tálcán. Ha az ablak normál módban minden rendben.
Tesztelt csak win 7 XP nincs módja sem.
Mondja senki sem tudja, mi van a hiba?

A GetWindowDC funkció visszakeresi az eszköz keretében (DC) a teljes ablak, beleértve a címsor, menük, és a görgetősáv

> Screen rögzíti a tálca

Nem csak tálcán. A koordináták és a bal felső negatív méretét.
Mindez azért, mert a maximalizált ablakkeret kívül az ügyfél területre az asztalon. Ezért szükséges, hogy kivonja a keret méretét (GetSystemMetrics + SM_CX (Y) SIZEFRAME + SM_CX (Y) FIXEDFRAME) érte.
Bár, talán van egy másik módja annak, hogy ezt a méretet.

Használja GetDC nem GetWindowDC, és akkor boldogság.

és mi van sobstno GetDesktopWindow?


> CRLF (07.06.12 00:15) [5]
> A GetDC nem GetWindowDC, és akkor boldogság.

Biztos vagy benne?

robt # XA0; (07.06.12 13:20) [8]
Nos, a fenébe akkor írástudó.
Tudod, hogy mást kell csinálni?

Próbálom csinálni, mint ez, de kiderült, hogy egy űrlapot, amelynek nincs címe

eljárás TssThread.ScreenShortWindow (var BMP: TBitmap);
var H: THandle;
# XA0; # XA0; R: TRect;
kezdődik

Ez ellentétben GetWindowDC.


> Oszd meg a helyes kódot.


> Tudod hogy mást kell csinálni?

Alt + Ctrl + PrintScreen;)))

Az igazság nem nagyon tetszik, ha # XA0; (t.Left<0) then.
lehet valahogy csinálni nélküle)?

robt # XA0; (07.06.12 14:29), [15]

Ezután már így: Alt + PrintScreen

Kapcsolódó cikkek