C# GDI 如何动态绘制矩形

类似于QQ截图!我只能画出静态的!就是点一下出现一个矩形!现在我像实现动态效果的!就是当鼠标按下去只要不松矩形就可以动态拉大!... 类似于QQ截图!我只能画出静态的!就是点一下出现一个矩形!现在我像实现动态效果的!就是当鼠标按下去只要不松矩形就可以动态拉大! 展开
 我来答
匿名用户
2013-11-25
展开全部
代码不写了,这里说算法: 利用3个事件
鼠标按下事件,鼠标移动事件,鼠标松开事件

鼠标按下的时候,记录当前的鼠标坐标,并设置一个值表示进入绘制矩形状态
鼠标移动的时候,判断是否是绘制矩形的状态,如果是,首先记下鼠标的坐标,然后利用第一个点(鼠标按下的点),绘制一个矩形

当鼠标松开的时候,停止绘制

这样会有个问题,就是每次移动的时候都绘制一个矩形,导致矩形太多了,解决的办法有2个,
1.每次画之前清除背景
2.记录上次的两个坐标,然后用和背景色一样的画笔重新画一个矩形
匿名用户
2013-11-25
展开全部
处理鼠标拖动事件。要点:1、记住矩形左上角初始位置 2、鼠标位置变动后,XOR原来的矩形。3、截取鼠标位置做为新矩形的右下角坐标,再新画一个矩形 4、鼠标坐标类型的转换,检查是相对坐标还是屏幕绝对坐标,要注意转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式