にしの様。
すみません、気になっていたもので・・・。
その「デスクトップに直接描画する方法」
を教えて頂けないでしょうか?
どのようにするのか興味があります。
GetDC(0)でデバイスコンテキストを取得して、そこに描画するだけです。
こんな感じです。
ただし、画面にゴミが残る可能性があります。
procedure TForm1.FormCreate(Sender: TObject);
var
DC: HDC;
Image: TJPEGImage;
bmp: TBitmap;
i: integer;
begin
Image := TJPEGImage.Create;
try
Image.LoadFromFile('hogehoge.jpg');
except
Image.Width := 100;
Image.Height := 100;
end;
DC := GetDC(0);
bmp := TBitmap.Create;
bmp.Assign(Image);
BitBlt(
DC,
(Screen.Width - Image.Width) div 2,
(Screen.Height - Image.Height) div 2,
bmp.Width,
bmp.Height,
bmp.Canvas.Handle,
0,
0,
SRCCOPY);
bmp.Free;
ReleaseDC(0, DC);
Image.Free;
for i := 0 to 200 do
begin
sleep(1);
Application.ProcessMessages;
end;
end;
ありがとうございます!
こうすると直接デスクトップに描画されるわけなんですね。
直接描画してしまっているから
エクスプローラや別の窓が重なると再描画されるわけでも
ないので消えてしまうんですね。
参考になりました。ありがとうございます。
ツイート | ![]() |