设为首页 加入收藏

TOP

VC解决绘图闪烁问题
2013-07-22 18:15:35 来源: 作者: 【 】 浏览:132
Tags:解决 绘图 闪烁 问题

  最近用VC画图,老是闪烁,上网查了一些资料,说是重载OnEraseBkgnd这个擦除背景函数,然后返回TRUE即可,代码如下:

  BOOL CDlgUnionPav::OnEraseBkgnd(CDC* pDC)

  {

  //return CDialog::OnEraseBkgnd(pDC);

  return TRUE;  //返回true表示不擦除此区域背景

  }

  我试了下,这样添加后确实不闪了,但是又出现了另外一个问题,就是在画图时候,把整个对话框其它部分的背景也不擦了,导致其它地方很乱,比如按钮的背景很乱,这显然不是我想要的结果,后来我又查了一些资料,发现了一个奇迹,其实根本不用那么麻烦,VC里面直接有个函数

  void InvalidateRect(LPCRECT lpRect, BOOL bErase = TRUE);

  这个函数,可以刷新指定矩形区域,而且可以控制该区域的背景是否擦除,所以把需要显示图像的区域设进来,然后将第二个参数设为false就可以了 ,这样在画图时候,该区域的背景就不会被擦除了,也就不会闪烁了,其它的区域也同样不会出现混乱现象。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇vc开发简单的flash播放器 下一篇VC给自定义按钮加上事件操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: