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

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

请问如何实现鼠标拖动图形比较好呢?GDI+是不是还有别的类或接口可以使用以实现这种功能呢?
...全文
825 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没有人知道?还是此问题没有答案?加分!

111,094

社区成员

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

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

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