CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

怎样更新对话窗的图形?(入门级)

楼主on_shift(小迷糊)2002-08-23 02:46:48 在 VC/MFC / 基础类 提问

我在一个基于对话窗的程序中用了几个CDC的函数,有画线,画icon等。相应在OnPaint()中调用。但是在加入或删除东西(例如icon)时,总是不能自动更新。我就加入了RedrawWindow();OnPaint();两个函数。用来更新界面,多番尝试,二者缺一就达不到理想效果。但是又有一个问题,画面闪烁得很厉害!不知道大家用什么方法的。请指教。 问题点数:100、回复次数:7Top

1 楼newlily2000()回复于 2002-08-23 08:25:16 得分 0

gzTop

2 楼fz_zhou(vcfan)回复于 2002-08-23 08:29:14 得分 20

在你想更新的时候调用Invalidate(),应该可以更新你的图形!  
  Top

3 楼spwnihao(╭∩╮(︶⌒︶)╭∩╮鄙视一切)回复于 2002-08-23 08:35:51 得分 20

InvalidataRect(CRect   rect);  
  更新你要刷新的区域,可以达到你的效果,由于更新的大小由rect大小来控制所以,当rect不太大时,就没有闪烁现象Top

4 楼dozoo(飞来峰上有晴天)回复于 2002-08-23 08:39:57 得分 20

画面闪烁可用如下方法解决:  
  加入OnEraseBkgnd()函数,并修改其返回值为TRUE.  
  BOOL   T2_2::OnEraseBkgnd(CDC*   pDC)    
  {  
            return   TRUE;  
        //return   CDialog::OnEraseBkgnd(pDC);  
   
  }Top

5 楼guangde(光光)回复于 2002-08-23 08:44:07 得分 20

在绘图结束后调用Invalidate()个更新整个客户区,调用InvalidataRect(CRect   rect)更新指自定的区域,大小由你自己定。更据你自己的情况选择一个函数。Top

6 楼ynli2002(阿男)回复于 2002-08-23 08:53:42 得分 20

用Invalidate()更新整个区域  
  用InvalidataRect(CRect   rect)更新你指定的区域  
  Top

7 楼on_shift(小迷糊)回复于 2002-08-23 13:22:21 得分 0

谢谢各位,送分Top

相关问题

  • 对话框怎么更新?
  • 对话框的更新问题
  • 高手指点:图形领域如何入门
  • 如何在对话框中增加图形按钮?
  • 如何将对话框的背景设置为BMP图形??
  • 在对话框里面,怎样做一个图形按钮。
  • 在对话框中画图,图形删除问题
  • 帮忙!在对话框上的如何去掉图形?
  • 如何在对话框上重画图形?
  • 如何在对话框中用图形显示计算结果

关键词

  • 函数
  • 区域
  • 更新
  • invalidatarect
  • 调用
  • onerasebkgnd
  • 闪烁
  • crect
  • rect
  • 大小

得分解答快速导航

  • 帖主:on_shift
  • fz_zhou
  • spwnihao
  • dozoo
  • guangde
  • ynli2002

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo