向dylike问一下GDI+的问题

xiaoid 2009-08-26 10:19:38
看你的备注是专注GDI+,所以向你请教一下;
1. graphcis.clear的问题。
我在form的paint里用这个函数,无效,原来的画的图还是存在,当然我主要是解决resize产生的paint事件。
如果把grapshics.clear放在所有绘制代码的最后面,就是paint事件的return前面,画面啥都没有了,有效果。
有人说用refresh,这个是肯定不行的。要死人的。


2. graphics的绘制函数(除drawimage和文字以外),画出来的线没有柔和效果,应该如何弄?



穷人一个。意思一下,希望帮帮忙;
...全文
36 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoid 2009-08-26
  • 打赏
  • 举报
回复
呃,我没有刷新页面。发没现dylike的回复。
实在不好意思。
xiaoid 2009-08-26
  • 打赏
  • 举报
回复
今天RP不错。找到第二个问题的答案了。
dylike 2009-08-26
  • 打赏
  • 举报
回复
首先,您描述的问题1不是很清楚.Graphics.Clear(Color)是有效的,但不可使用Color.Transparent,使用透明色进行"擦除"是无效的.请检查您的代码是否在Clear后面用上了透明色.
其次,您没有贴出您的代码,无法从您的代码上去分析问题的原因.因为您所描述的问题情况是我们所没有遇到过的(即原来的图像是不会继续存在的,除非您Clear()透明色).
再次,Paint()事件是不可以使用Refresh的,它会造成N次的重复循环.
如果方便,您可以将您的代码贴上来,我们帮助您分析查看,并找到可能的原因.

至于柔和效果,您可能是指"抗锯齿":
G.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
或者:
G.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
将该语句写在绘制代码之前,如 dim G as Graphics的下一行.
xiaoid 2009-08-26
  • 打赏
  • 举报
回复
楼上提供的方法可以解决。偶有闪烁,可接受;谢谢。
不知道能不能帮我解决第二个问题;
feiyun0112 2009-08-26
  • 打赏
  • 举报
回复
resize事件加ME.Invalidate强制重画

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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