最近在做一个股票图形方面的东东,大概要绘制上百万个数据吧,原本用的MSchart控件,但是这个图表控件只能支持65535个数据,SetRowCount(short),结果我只好每绘制65535个数据就把图表转移到Picture上,这样只能绘制出图形,交互就不能了,请问有没有其他图表控件支持更多的数据啊,哪怕几十万也好,而且控件能在vc环境下使用,因为我用vc6.

解决方案 »

  1.   

    数据量明显太大了。不过也是可以照用Mschart的,方法就是分段显示,看一下很多股票软件的曲线图就能知道,他们最多也就显示几个项而已,例如一年。太多的点在屏幕上也是显示不出来的,想一下,屏幕横向分辩率才多大?所以,65535的量是足以在一个屏幕上显示的,接下来的工作就是如何实时的根据用户的拖动(向左或向右)重新画图了,如用户向右拖了半屏,那你就大概(不用很精细)的计算出这个位置对应的日期段,再将此日期段的数据绘制出来。原理和CDATAGRID中显示数据记录是一样的,CDATAGRID要显示几百万数据的表,也不是全部读取显示的,只显示用户拖动到的地方,否则内存要大多啊?你说的几百万条记录也是不现实的,总不能几百万条都画上去的,所以思路上不对。
      

  2.   

    to tianchong、xsc2001:谢谢你们给的思路,你们说的方法都类似,我想问mschart动态绘制图形(也就是当用户拖动的时候)的时候,当拖动很少我也必须重新绘制,这样一来不是就会闪烁很严重吗?
      

  3.   

    我也这样做过,结果因为闪烁严重,我只好利用双缓冲画picture上,结果因为Editcopy到剪贴板的时候是24位位图,我画到picture就变成黑白的了,顺便问下:这24位位图的颜色如何处理?(貌似24位位图没有调色板吧)
      

  4.   

    不好意思,我问得有点多了,呵呵!24位位图颜色问题不重要,因为picture不能交互。只不过我有问题睡不着觉啊,所以顺便烦恼大侠帮指点下。