用Graphics绘图如何实现移动图形?

CodeTalk 2006-04-20 04:26:30
希望在mousemove事件中移动画好的图形或图像,但是找不到move之类的方法,而在新位置重画好像带来很大的闪烁。

请问如何实现鼠标拖动图形比较好呢?GDI+是不是还有别的类或接口可以使用以实现这种功能呢?
...全文
671 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jl_7777 2006-12-03
Matrix类,就是搞这些的,什么缩放,平移功能都有,具体用法看看MSDN吧
  • 打赏
  • 举报
回复
netboygg 2006-12-03
mark
  • 打赏
  • 举报
回复
tianxingzh 2006-10-03
mark
  • 打赏
  • 举报
回复
sky 2006-06-26
要移动一个图形,是需要一系列的技术,说起来比较复杂的,比方说:要先选取这个图形,然后才能移动,那怎么选取呢?

建议你先看看别人的例子,或者找些相关的书看看,如:《GDI+程序设计实例》等等。

之于移动,其实在GDI+里,作个矩阵变换就可以了,一个现成的函数就可以了,还可以旋转呢。

另外,或者下面的一些样式,可以减少重绘时的闪烁
SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
  • 打赏
  • 举报
回复
tangzhu0619 2006-06-26
GDI+可以不闪
  • 打赏
  • 举报
回复
jhtchina 2006-06-26
Mark
  • 打赏
  • 举报
回复
guishuanglin 2006-06-26
参看如下文章,很不错
http://www.codeproject.com/csharp/csmapviewnet01.asp
http://www.codeproject.com/dotnet/Mapview.asp
http://www.codeproject.com/csharp/canvasgis.asp
  • 打赏
  • 举报
回复
长江支流 2006-05-18
www.AnyReport.Net就是这个思想搞出来的。

写程序写的是思想,思路清晰即可。

我相信程序员的水平是差不多的,任何一个程序员都可以实现它,只是时间先后问题。

希望大家成功!
  • 打赏
  • 举报
回复
长江支流 2006-05-18
统一一个接口,如IGoldPrinterElement,至少有一个Draw(Graphacis g)方法。

这样,无论以后扩展多少个图形元素,只需要实现这个接口即可,再加一个实现此接口的确基类GoldPrinterElement和集合GoldPrinterElementCollection。

你做一个控件如GoldPrinterGraphicsControl,或者你说的容器控件,申明一个GoldPrinterElementCollection并实例化,这样,在你的控件上(菜单或有图形样式的图片按钮都可)执行一命令,则增加一个继承于GoldPrinterElement的实例如点、线、矩形、圆、椭圆、标签、文本框、表格等,并把它加到GoldPrinterElementCollection中,在控件GoldPrinterGraphicsControl的OnPaint中循环每一个GoldPrinterElementCollection集合中的GoldPrinterElement并调用它的Draw(e.Graphacis)即可。
  • 打赏
  • 举报
回复
CodeTalk 2006-05-18
没有人知道?还是此问题没有答案?加分!
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2006-04-20 04:26
社区公告

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