社区
C#
帖子详情
效率问题 求 绘图时鼠标带十字线 思路
zzlfe
2009-08-15 12:37:26
现在是鼠标移动时,refresh绘图区,然后根据鼠标位置 xy绘制两条线,现在问题是鼠标移动时,CPU占用率较大,有个VC做的控件,画十字线CPU看不出变化来,因为绘制内容特别,现成的控件无法完成。
这里有个类似帖子,http://topic.csdn.net/t/20050705/09/4123254.html#不过他遇到的是延时。
...全文
173
10
打赏
收藏
效率问题 求 绘图时鼠标带十字线 思路
现在是鼠标移动时,refresh绘图区,然后根据鼠标位置 xy绘制两条线,现在问题是鼠标移动时,CPU占用率较大,有个VC做的控件,画十字线CPU看不出变化来,因为绘制内容特别,现成的控件无法完成。 这里有个类似帖子,http://topic.csdn.net/t/20050705/09/4123254.html#不过他遇到的是延时。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hughyp
2009-10-20
打赏
举报
回复
问题解决了吗?
zzlfe
2009-08-21
打赏
举报
回复
[Quote=引用 8 楼 dylike 的回复:]
比如,采用桌面秀那样的透空窗体,除十字线部分其他地方全部不可见(当然可以设置鼠标穿透),这样的话,由于是另一个窗体线程,而且是屏幕合成,不会影响你的主窗体绘制.
关键字: UPDATELAYEREDWINDOW
参阅
[/Quote]注释真多啊
dylike
2009-08-16
打赏
举报
回复
比如,采用桌面秀那样的透空窗体,除十字线部分其他地方全部不可见(当然可以设置鼠标穿透),这样的话,由于是另一个窗体线程,而且是屏幕合成,不会影响你的主窗体绘制.
关键字: UPDATELAYEREDWINDOW
参阅
云水千寻
2009-08-16
打赏
举报
回复
鼠标移动时,refresh绘图区?
也就是说,只要鼠标移动就refresh,这样的话CPU占用肯定很高的
zhoujk
2009-08-16
打赏
举报
回复
做到 picturebox 的 鼠标移动事件中,但是每次事件完成前, sleep(x),保证不要老是占用CPU
dylike
2009-08-15
打赏
举报
回复
不是很明白,请详细描述,最好能带图.
zzlfe
2009-08-15
打赏
举报
回复
没有延时,是效率不够高。
如果是合成到其他图片(如地图),那么建议使用另一个独立的窗体,通过绘制十字线,并且设置非十字线区域的背景色透明(透空)来实现,
麻烦这个详细说说
chaozi_249
2009-08-15
打赏
举报
回复
就用3楼的第2种方法吧。
在鼠标进入绘图区时,内存建立空画布-->获得鼠标的当前位置-->绘制十字线(长度自己设置)-->显示到绘画区域。离开绘图区,释放资源。。
dylike
2009-08-15
打赏
举报
回复
两种方法:
1 使用图像显示区域CreateGraphics实时绘制(效率差,效果不好)
2 内存建立空画布=>绘制十字线=>显示在显示区域,如Picturebox,同时开启窗体双缓冲.
如果是合成到其他图片(如地图),那么建议使用另一个独立的窗体,通过绘制十字线,并且设置非十字线区域的背景色透明(透空)来实现,这样就不会有延迟.
zzlfe
2009-08-15
打赏
举报
回复
绘图时,为了更好显示当前位置,在整个绘图区显示鼠标位置水平和垂直两条直线。画这两条直线的思路
谢谢
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章