MDIアプリケーションにて、フォームの画像(スクリーンショット)を
出力し、ビットマップ保存する機能を作成しています。
下記コードでフォームの内容を画像にし、ビットマップ保存できたのですが、他のMDIのウィンドウで一部隠れているときに、
下記コードを実行すると、隠れた状態で画像が撮れてしまいました。
procedure Button1Click(Sender : TObject);
var
bmp : TBitmap;
begin
bmp := TBitmap.Create;
bmp.Width := Form1.Width;
bmp.Height := Form1.Height;
BitBlt(bmp.Canvas.Handle, 0, 0, Form1.Width, Form1.Height, GetDC(Form1.Handle), 0, 0, SRCCOPY);
bmp.SaveToFile('Form1.bmp');
bmp.Free;
end;
フォームが隠れている場合でも、フォームの全体の画像を隠れない状態で、画像を作成することはできないものでしょうか?もしできるなら、その方法を教えていただいてもよろしでしょうか。
こちらが参考になるかと。
https://www.petitmonte.com/bbs/answers?question_id=1664
bmp := Form1.GetFormImage;
で、いけるんじゃないかな。
ツイート | ![]() |