关于绘图的问题,急待解决!!

xpolice_wj 2008-12-03 05:53:38
小弟现在用C#调用别人用VC编写的一个地图组件,在自己的程序里显示一幅地图,同时调用另一个组件在地图上显示一艘船,我要实现船在地图上动态行驶的效果。(地图和舰艇的绘制都是在paint事件里完成的)。
我使这么解决的:在程序里放一个TIMER,每一秒种重绘一次船的位置,但问题是,每次重绘,鼠标的状态都会为等待,由于重绘时间间隔比较短,所以鼠标的状态就是不停的变换,其他操作无法完成,我查了一下,原因是每次重绘时,地图也会被重绘,从而造成系统等待状态。
请问:如何即完成舰艇的行驶,又不会使鼠标不停的变换。
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CraxyMouse 2008-12-03
  • 打赏
  • 举报
回复
用invalidate(rectangle rect)
用这个函数进行局部重绘要不然的话CPU一直是100%
还要记得打开双缓冲
xpolice_wj 2008-12-03
  • 打赏
  • 举报
回复
因为地图也是在paint事件中绘制的,当重绘舰艇时,地图也就被重绘了。如果地图不重绘,那么当舰艇被重绘时,地图就没有了。
Sphonix 2008-12-03
  • 打赏
  • 举报
回复
重开一个线程来单独处理舰艇,地图别重画,要不然会慢死。
wangping_li 2008-12-03
  • 打赏
  • 举报
回复
为什么地图还要被重绘呢?
xpolice_wj 2008-12-03
  • 打赏
  • 举报
回复
UP

111,130

社区成员

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

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

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