MyException - 我的异常网
当前位置:我的异常网» C# » 怎么在Winform中实现自己绘制得图进行拖动

怎么在Winform中实现自己绘制得图进行拖动

www.myexceptions.net  网友分享于:2013-02-01  浏览:85次
如何在Winform中实现自己绘制得图进行拖动!
怎么实现自己用GDI+绘制得图形进行拖动,并且可以多个图进行重叠显示?谢谢大侠们!

------解决方案--------------------
把画的图放到容器上
比如GroupBox或者PictureBox上
然后拖动容器控件

重叠显示,就是重新画一张图

------解决方案--------------------
GDI+我也用过一段时间,有一定的了解,以下是我的个人见解
你想拖动GDI+绘制的图形其实就是把你所绘制的图形位置不断的重载,在鼠标按下的时候记下鼠标的坐标,移动后松开鼠标也有个坐标,通过这两个坐标你就可以得到你所移动的图形的顶点.

关于重叠最好是调整上面图形的透明度,然后把图形画到你要移到的图形上
------解决方案--------------------
要分别处理MouseDown,MouseMove,MouseUp事件。

在MouseDown的时候判断鼠标位置是否在图形区域内,MouseMove的时候不断刷新重绘,根据鼠标及时坐标重画新图形,擦除之前图形。MouseUp和MouseMove类似。

至于重叠,你可以把所有图形的GraphicPath加到一个List里面,按顺序画到屏幕上就可以了
------解决方案--------------------
调用API获得颜色,然后判断坐标,如果是你画的图,就改变绘图参数,重新绘制一遍,你是要做绘图板吧,哪个学校的?
------解决方案--------------------
把画的图放到容器上
比如GroupBox或者PictureBox上
然后拖动容器控件

重叠显示,就是重新画一张图

要分别处理MouseDown,MouseMove,MouseUp事件。
------解决方案--------------------
要么用多个PictrueBox,要么像我说的调用一系列WIN API来实现
------解决方案--------------------
private void Login_MouseDown(object sender, MouseEventArgs e)
//记录鼠标点击的初始位置
{
if (e.Button == MouseButtons.Left)
{
//pSrc = new Point();
//pSrc.X = e.X;
//pSrc.Y = e.Y;
sx = e.X;
sy = e.Y;
}
}

private void Login_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point pDest = PointToScreen(new Point(e.X, e.Y));
this.Location = new Point(pDest.X - sx, pDest.Y - sy);//pSrc.X, pDest.Y - pSrc.X);
}
}

protected int sx, sy;

private void Login_MouseUp(object sender, MouseEventArgs e)
{
}
------解决方案--------------------
楼上的。。。
你的代码解决不了他的问题。。。
------解决方案--------------------
code project 上有源代码。我现在也在研究这个问题。
------解决方案--------------------
我做的图型控件以后也要实现这个功能,先帮你顶
------解决方案--------------------
我QQ 378138668 加我先,以后一起研究啊
------解决方案--------------------
你要记录下所有的操作,每次的操作都是一个对象,每个对象都有一个移动的方法.
每个对象在不同的层上

文章评论

亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
总结2014中国互联网十大段子
总结2014中国互联网十大段子
我的丈夫是个程序员
我的丈夫是个程序员
Java程序员必看电影
Java程序员必看电影
程序员必看的十大电影
程序员必看的十大电影
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
旅行,写作,编程
旅行,写作,编程
为什么程序员都是夜猫子
为什么程序员都是夜猫子
代码女神横空出世
代码女神横空出世
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员都该阅读的书
程序员都该阅读的书
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
一个程序员的时间管理
一个程序员的时间管理
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员应该关注的一些事儿
程序员应该关注的一些事儿
漫画:程序员的工作
漫画:程序员的工作
编程语言是女人
编程语言是女人
程序员的鄙视链
程序员的鄙视链
每天工作4小时的程序员
每天工作4小时的程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
中美印日四国程序员比较
中美印日四国程序员比较
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
鲜为人知的编程真相
鲜为人知的编程真相
那些争议最大的编程观点
那些争议最大的编程观点
如何成为一名黑客
如何成为一名黑客
我是如何打败拖延症的
我是如何打败拖延症的
老程序员的下场
老程序员的下场
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有