这个问题?我没有多看懂,估计是想实现类似任务管理器上的CPU使用率的一个图形显示吧.
我的思路是这样子的:
建立内存位图,用于绘制波形,在绘制完后再同步显示到显示器上,再绘制坐标尺
首先绘制开始数据,并在下一次采样后,将原来的绘制好的图像左移,并绘制新采样数据,并同步显示
需要API函数:CreateCompatibleBitmap,BitBlt等一些函数

解决方案 »

  1.   

    任务管理器里面那种CPU图,其实很简单.
    它每次只画最右面的一个点(或者是用线连到最新的一个点)
    然后将整个图片往左面贴一个单位而已.因为只有最右面那一条图像是新的,左面的那些都是原来画好的,只要贴过去就可以我看你的做法还要计算原来的点的坐标,显然你是整个重画了,效率低
      

  2.   

    你仔细观察一下那个CPU或者网络连接图, 绝大部分图片是一样的,只更新最右面的一条而已.
    那想想就能明白了,先把整个图片往左面贴过去一个单位,然后右面不是就空出来一条了么?就在这一条上,把最新的那个数据点画上.
    然后重复重复再重复,直到你数据画完
      

  3.   

    现在想问下具体思路,问题如下:
    1.要有边框,因此要想用移动图片实现,必须2个图片控件,并且把1个作为另一个的子控件,移动子控件来实现?(这个估计用1图片控件也可以实现,估计麻烦点)
    2.该子图片控件是否要足够长,例如一次波形数据显示200个像素,然后数据总长有4000个像素,所以子图片要长4000像素
    3.关于移动的方法,是否用到API的BitBlt或者直接用Move来移动?
      

  4.   

    现在想问下具体思路,问题如下: 
    1.要有边框,因此要想用移动图片实现,必须2个图片控件,并且把1个作为另一个的子控件,移动子控件来实现?(这个估计用1图片控件也可以实现,估计麻烦点) 
    2.该子图片控件是否要足够长,例如一次波形数据显示200个像素,然后数据总长有4000个像素,所以子图片要长4000像素 
    3.关于移动的方法,是否用到API的BitBlt或者直接用Move来移动? 所说的容器就是第一点的Picture1么?
      

  5.   

    没有必要做控件移动,如果你从左边移出的图形不再有用的话。直接用 BilBlt API 将右边的位图像素左移,然后在右边接着绘制就是了。