永发信息网

Delphi简单问题, 高手来啊

答案:1  悬赏:20  手机版
解决时间 2021-05-08 13:17
  • 提问者网友:我是我
  • 2021-05-07 22:39
我有个截图功能的函数, 但是只能和系统的截图一样, 如何才能带鼠标截图呢?
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-05-07 22:48

可以先抓图,然后在使用DrawIcon将鼠标光标画上去。在uses部分加上Clipbrd单元。




procedure TForm1.FormClick(Sender: TObject);
var winHWND, hCur:integer;
winDC:integer;
rect:TRect;
AFormat : Word;
AData,APalette : THandle;
pt:TPoint;
fBitmap:TBitmap;
begin
hCur := GetCursor(); // 获得光标句柄
GetCursorPos(pt); // 记录光标位置
winHWND := GetDesktopWindow();
winDC := GetDC(winHWND);
GetWindowRect(winHWND, rect);
fBitmap := TBitmap.create;
fBitmap.width := rect.right-rect.left;
fBitmap.height := rect.bottom-rect.top;
BitBlt(fBitmap.canvas.handle, 0, 0, fBitmap.width, fBitmap.height, winDC, 0, 0, SRCCOPY);
DrawIcon(fBitmap.canvas.handle, pt.x, pt.y, hCur); // 画光标
ReleaseDC(winHWND, winDC);
fBitmap.SaveToClipBoardFormat(AFormat,AData,APalette);
Clipboard.SetAsHandle(AFormat,AData);
end;


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯