一如既往地问闪烁问题

iseelxj 2006-10-31 06:42:12
一个Panel,叫它Parent,在Onpaint事件,里面画了一张图片和小点点,Panel里面还有一个Panel叫做Child,背景色设为透明,程序运行时Child可以用鼠标拖动,但是闪烁很严重。double buffering开了也不好用。我觉得是每次都重新刷新整个Parent很费时间,可是局部刷新 Invalidate 怎么用啊,或者说到底是不是局部刷新呢?
...全文
201 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
iseelxj 2006-11-01
  • 打赏
  • 举报
回复
谢谢两位好心人
dyw31415926 2006-11-01
  • 打赏
  • 举报
回复
一个Panel,叫它Parent,在Onpaint事件,里面画了一张图片和小点点,Panel里面还有一个Panel叫做Child,背景色设为透明,程序运行时Child可以用鼠标拖动,但是闪烁很严重。double buffering开了也不好用。我觉得是每次都重新刷新整个Parent很费时间,可是局部刷新 Invalidate 怎么用啊,或者说到底是不是局部刷新呢?
----------------------------------
你刷新的是哪个panel啊, 贴代码出来,你肯定有地方弄得不错,偶也做过类似的东西, 不闪啊
baixc 2006-11-01
  • 打赏
  • 举报
回复
这是绘制的问题。
如果要解决需要使用背表面,意思就是在内存中申请一个表明(相当于一张图片),把你要画的东西都在这张图片上画好,当全部画好后一次性贴到你的Panel中,然后清空该表面重新画,画完再贴,这样就不会闪烁了。
ms44 2006-11-01
  • 打赏
  • 举报
回复
局部刷新可以给INVALIDATE一个REGION ,会好点。
也可以使用GDI的XOR方式。
还可以CLIENT和背景抓两幅图,然后,拖动的时候化图,这样是最好的方式,就是稍微麻烦一点.
liujia_0421 2006-10-31
  • 打赏
  • 举报
回复
没研究过,来支持你一下,也借地学习一下....
lizhizhe2000 2006-10-31
  • 打赏
  • 举报
回复
帮你顶吧!快沉了
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-31 06:42
社区公告

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