急!如何获得鼠标图像,并在Picture中打印出来,多谢

xuemingfeng 2003-10-15 04:31:00
如何获得鼠标图像,并在Picture中打印出来,很急,谢谢
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuemingfeng 2003-10-23
  • 打赏
  • 举报
回复
谢谢这位 rainstormmaster(rainstormmaster) 哥们
认识一下吧,我的QQ:53863511
rainstormmaster 2003-10-18
  • 打赏
  • 举报
回复
抓图实际上是位图的复制,Windows在复制位图时是不会受鼠标光标的影响的。可以先抓图,然后在使用DrawIcon将鼠标光标画上去。

下面是一个delphi的例子。
首先建立一个Form,在uses部分加上Clipbrd单元。
然后在Click事件中输入以下代码:

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;

当你在Form上点一下,程序将截取屏幕图像,并将图像拷贝至剪贴板。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧