CDC双缓冲绘图问题

huiyouyongdeyu2011 2011-06-09 05:09:44
我是在一个picturecontrol加载的图片上绘制直线的,之前已经画了两条线了,用1、2号线表示吧,显示的很好,都没有问题,后来应该需要就暂时先把那两条线的代码注释了然后又另外画了两条线,也是在那个图片上画的,暂且用3、4号线表示,显示的也很好,后来我想把这四条线都画到一个picturecontrol控件加载的图片里,问题就出来了,我把1、2号线的画线代码加在3、4号线的代码后面就一条线都画不出来了,然后我就又试了一下先画1、2号线再画3、4号线,结果那个画线区域总是黑屏闪烁,看上去也只有3、4号线的线画出来了,请问各位高手这个是什么问题呢?难道双缓冲只可以画两条线吗?还是我哪里没有处理好呢?请各位高手指教!
...全文
146 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我去。又见理论帖
hnzlk 2011-06-10
  • 打赏
  • 举报
回复
huiyouyongdeyu2011 2011-06-10
  • 打赏
  • 举报
回复
哈哈,问题已经解决了,是我自己的失误,谢谢大家的关注与支持了
yungmode 2011-06-10
  • 打赏
  • 举报
回复
在onerasebackground函数里直接返回true,可以解决闪烁的问题哦!
yungmode 2011-06-10
  • 打赏
  • 举报
回复
又是你哦!

因为 你写的那个类不是所谓的双缓冲哦!

你画线的功能只是继承CDC本身的功能,所以还是单缓冲的。

另外,你可以试试在onerasebackground函数里直接返回true.
LICHUNLI1022 2011-06-10
  • 打赏
  • 举报
回复
http://tianqi9630.blog.163.com/blog/static/10549638920098309385420/
huiyouyongdeyu2011 2011-06-10
  • 打赏
  • 举报
回复
我设置的画线的宽度都是一样的,应该不会出现覆盖的问题,再说画线的数据也是不一样的,线的颜色也都是不一样的,都是彩色的,“双缓冲画图,画线后记得要:invalidate();”这个具体是什么意思呢?我是在一个循环里面画线的,在初始设置的时候就调用了invalidate();这个会有影响吗?但是之前也都是这样做的,两条线的时候就没问题啊,现在是直接在两条线的后面又加了两条线就不对了,奇怪呢
随风秀舞 2011-06-09
  • 打赏
  • 举报
回复
双缓冲画图,画线后记得要:invalidate();
xzj07 2011-06-09
  • 打赏
  • 举报
回复
同求双缓冲绘图的例子。
「已注销」 2011-06-09
  • 打赏
  • 举报
回复

难道双缓冲只可以画两条线吗?

幽默...

你用的双缓冲?

你是在内存DC中画的?

你设置了画线的宽度没?(是不是画线太宽遮住)

可以发来代码 或者 截图看看


huiyouyongdeyu2011 2011-06-09
  • 打赏
  • 举报
回复
请问做双缓冲的有什么应该特别注意的吗?我在画后面两条线的时候是完全按照画第二条线的方法来做的,就是不知道为什么不能实现呢?
不二星空 2011-06-09
  • 打赏
  • 举报
回复
难道双缓冲只可以画两条线吗? 不可能
还是我哪里没有处理好呢? 肯定有,没代码页不知道。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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