c# 如何在一张图片上画上当前光标?

zzyhost 2014-10-24 05:04:52
用这个办法画出来的光标都是默认的箭头,
Cursor.Current.Draw(g, new Rectangle(Cursor.Position.X, Cursor.Position.Y, 33, 33));

我想当前光标是什么形状就画什么形状,如何做到?
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-10-24
  • 打赏
  • 举报
回复
Current替换成你想要的光标 Current表示当前光标样式
於黾 2014-10-24
  • 打赏
  • 举报
回复

看到了吗,没有问题
你是在什么地方执行截屏的代码的,是否在按钮里执行的?
如果在按钮里执行,用鼠标按下按钮的时候,当然鼠标是默认样式
当鼠标样式改变的时候,使用tab让按钮获得焦点,然后按回车截屏,就是如图的效果
zzyhost 2014-10-24
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
看你的光标位置是Cursor.Position.X, Cursor.Position.Y 就是说,你的图非常大,跟屏幕整个一样大 那就遮挡了全部的控件了? 你不会是想把一台电脑的屏幕,显示在另一台电脑上吧 那么在另一台电脑上,你不能用Cursor.Current,因为另一台电脑的光标其实没变,你应该把电脑A的光标样式连同图像一起发送到电脑B上去,然后电脑B应用电脑A中的光标样式来画图
你可以用这个函数测试一下 public Bitmap GetScreenBmp(Rectangle rect) { Bitmap screenBmp = new Bitmap(rect.Width, rect.Height); using (Graphics g = Graphics.FromImage(screenBmp)) { g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size); Cursor.Current.Draw(g, new Rectangle(Cursor.Position.X, Cursor.Position.Y, 33, 33)); } return screenBmp; }
zzyhost 2014-10-24
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
看你的光标位置是Cursor.Position.X, Cursor.Position.Y 就是说,你的图非常大,跟屏幕整个一样大 那就遮挡了全部的控件了? 你不会是想把一台电脑的屏幕,显示在另一台电脑上吧 那么在另一台电脑上,你不能用Cursor.Current,因为另一台电脑的光标其实没变,你应该把电脑A的光标样式连同图像一起发送到电脑B上去,然后电脑B应用电脑A中的光标样式来画图
截图程序,你就明白了。比如当光标放到文本里的形状就是个竖,可这时按下热键打开截图并画上光标,光标的形状还是默认的箭头
於黾 2014-10-24
  • 打赏
  • 举报
回复
看你的光标位置是Cursor.Position.X, Cursor.Position.Y 就是说,你的图非常大,跟屏幕整个一样大 那就遮挡了全部的控件了? 你不会是想把一台电脑的屏幕,显示在另一台电脑上吧 那么在另一台电脑上,你不能用Cursor.Current,因为另一台电脑的光标其实没变,你应该把电脑A的光标样式连同图像一起发送到电脑B上去,然后电脑B应用电脑A中的光标样式来画图
於黾 2014-10-24
  • 打赏
  • 举报
回复
不好意思,看错了 实测,Cursor.Current.Draw是可以画上当前光标的 你的完整代码呢,或者起码说说你要把光标画到哪里去

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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