Polyline, PolyLineTo VB声明 
Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long 
说明 
用当前画笔描绘一系列线段。使用PolylineTo函数时,当前位置会设为最后一条线段的终点。它不会由Polyline函数改动 
返回值 
Long,非零表示成功,零表示失败 
参数表 
参数 类型及说明 
hdc Long,要在其中绘图的设备场景 
lpPoint POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构 
nCount Long,lpPoint数组中的点数。会从第一个点到第二个点画一条线,以次类 

解决方案 »

  1.   

    不知道你在做的时候有没有选把 PictureBox 的 Visible 属性设为 False, 这个属性的绘图的速度影响是很大的,还有AutoRedraw 属性的设置。
      

  2.   

    用一个结构存储数据,在On_Paint里边重画。类似MFC的机制
      

  3.   

    谢谢楼上。
    我的autodraw=true。
    但是我是先创建了一个DC,然后再内存里将DC画好,然后,BITBLT到这个PICTUREBOX中。我害怕使用ON_PAINT。因为每一次重画都花费不少时间(即出现闪烁)。
      

  4.   

    我原先用COLLECTION的来存储数据。即一开始打开程序就把所有地理数据都读入到collection的变量数组。然后从collection中读取数据。后来看了一些VB6的新增功能,据说Dictionary对象的读写速度可以比collection快3倍,我看可以试一试。
      

  5.   

    改成dictionary后速度是快了一些。但是似乎还是不够理想。因为,地理数据只有800K左右。我总觉得不应该这么慢(全部画完时间缩短到0.85秒左右)。但是我的机器是P42.0G, 内存256M。
    是VB的问题吗?