我用vc,根据采集到的数据,在View中画曲线,画倒是能画出来,但是问题就在于它在实时采集的时候,可以正常的显示(当然了,采集的横标,就是时间,有自动扩展的功能),但是其实在这个过程中,我只是刷新那个坐标区之内的范围。但是如果你刷新一下整个页面(比如切换到桌面,然后再切换回来)。那么有时候,它图线画到了指定的区域之外。或者读取历史曲线的时候,如果横标过小,有时候也会出现类似的问题。至于这个指定区域,就是在View中,我指定的一个以坐标系为分界的这么一个方形区域。我不知道应该怎么解决这个问题,我想请教各位,是不是有什么函数,能使刷新就在View中的一个指定区域里,之外的部分都不刷新,或是保持原来的状况,即使是在切换到桌面后又切回来的这种请况。

解决方案 »

  1.   

    InvalidaetRect这个函数!!!刷新你指定的区域!!
      

  2.   

    楼上的大侠:你说的这个函数好像只能是在不全屏重画的请况下好用巴?如果切换到桌面,再切回来,好像又不好用了。我查找msdn,找到一个CDC::SetViewProtEx的函数。但是确仅仅有一些粗略的描述,没有例程代码让我是找不着头绪。不知道您是否用过,这种图像处理显示的功能,或是手头有相关资料回答我一下贝谢谢了。
      

  3.   

    想法:自己指定一个画曲线的区域,然后把曲线只画在该区域之内,然后InvalidaetRect。
      

  4.   

    楼上的:黑牛先生你的想法感觉很有道理,感觉应该是一个制作自己的cdc,然后复制到相应区域把?但是我觉得好像应该没有这么复杂把?比如有函数可实现这个功能。另外,我刷新的时候,有尝试invalidaterect,但是也不好用。另外还有就是背景必须也刷新,因为上面有坐标系啊。谢谢你的热心。不知道我说的是不是有那里错了