鼠标移动时如何在屏幕上画线???

匆匆岁月 2004-07-11 09:30:25
也就是说,
当鼠标点下去后,
在没有up时,鼠标会移动,那我想在鼠标移动时把鼠标down时的位置和现在移动到的位置上画一个矩形框,
现在的问题是
由于鼠标在不停地移动,
所以每次鼠标移动后,
如何把已经画好的短形框在屏幕上消掉,
同时重新画新的矩形框,
让用户在界面上看到的是框在不停地随着他鼠标的移动而在不断变化???
...全文
1379 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
匆匆岁月 2004-07-12
  • 打赏
  • 举报
回复
多谢了:)
johnczy 2004-07-12
  • 打赏
  • 举报
回复
好奇心驱使我上msdn搜索了一下,果然查出一篇好文。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaskdr/html/askgui02172004.asp
Dr. GUI 的回答也是建议用ControlPaint因为它最简单。
匆匆岁月 2004-07-11
  • 打赏
  • 举报
回复
在界面上有一个picurebox,这个picturebox的image是一幅图。
我想,
当鼠标在picturebox上面拉框时,用一个矩形画出来。
当鼠标不停地移动时,这个矩形也不停地变化。。。
匆匆岁月 2004-07-11
  • 打赏
  • 举报
回复
背景颜色花花绿绿的,
pen也不止一个...
codeangel 2004-07-11
  • 打赏
  • 举报
回复
樓是說的對。
  • 打赏
  • 举报
回复
你是指橡皮矩形吧?由于矩形有一个端点是不变的,因此只要不断记录前一个mousemove时cursor的坐标,再使用背景颜色的pen擦除原先矩形并用新坐标值绘制新矩形就可以了
匆匆岁月 2004-07-11
  • 打赏
  • 举报
回复
多谢了:)
johnczy 2004-07-11
  • 打赏
  • 举报
回复
发现我的回答有笔误,改在这了。

你可以用ControlPaint.DrawReversableLine 来实现。
原理是call ControlPaint.DrawReversibleLine 可以画 line
在同一地方再call ControlPaint.DrawReversibleLine 可以把它擦掉而不影响原背景。


鼠标按下时,记下点0,
鼠标移动时记下点1 call ControlPaint.DrawReversableLine to draw frame(点0,点1)
鼠标再移动时记下点2
call ControlPaint.DrawReversableLine for (点0,点1)
call ControlPaint.DrawReversableLine for (点0,点2)

原理就是这样了。

参考
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsControlPaintClassDrawReversibleLineTopic.asp

希望你能达Net!
johnczy 2004-07-11
  • 打赏
  • 举报
回复
参我在另一贴的答案。http://community.csdn.net/Expert/topic/3164/3164279.xml?temp=.1516687
已经是第三次回这种问题了。

111,098

社区成员

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

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

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