我说一个例子
ctrl+t   引用 D:\WIN2K\System32\MSCHRT20.OCX **部件**Private Sub Command1_Click()
   With MSChart1
      .chartType = VtChChartType2dLine
      .ColumnCount = 8
      .RowCount = 8
      .ShowLegend = True
      .SelectPart VtChPartTypePlot, index1, index2, _
      index3, index4
      .EditCopy
      .SelectPart VtChPartTypeLegend, index1, _
      index2, index3, index4
      .EditPaste
   End With
End Sub
有什么疑问 留言CSDN消息给我
http://www.csdn.net/Message_Board/Send.asp?sendto=sunxl

解决方案 »

  1.   

    ChartType 常数
    VtChChartType 提供图表类型选项。常数 描述 
    VtChChartType3dBar 3D 条形图 
    VtChChartType2dBar 2D 条形图  
    VtChChartType3dLine 3D 折线图 
    VtChChartType2dLine 2D 折线图 
    VtChChartType3dArea 3D 面积图 
    VtChChartType2dArea 2D 面积图 
    VtChChartType3dStep 3D 阶梯图 
    VtChChartType2dStep 2D 阶梯图 
    VtChChartType3dCombination 3D 组合图 
    VtChChartType2dCombination 2D 组合图 
    VtChChartType2dPie 2D 饼图 
    VtChChartType2dXY 2D XY 散点图 
      

  2.   

    直接用Line话就是
    还用什么控件现在学编程的人啊动不动就用非基本控件
      

  3.   

    用Line画,不过速度还是不行,如果你可以把阴线和阳线分解为一些图片,用BitBlt贴图,估计要快些
      

  4.   

    Private Sub DrawKLine(picBroad As PictureBox, CurJL As Long, ts As Long, maxhigh As Double, minlow As Double)
    '画K线
    Dim DrawColor As Long
    Dim i As Long
    Dim MaxJL As LongpicBroad.Cls
    picBroad.Scale
    If CurJL + ts > UBound(hq) Then
        MaxJL = UBound(hq)
    Else
        MaxJL = CurJL + ts
    End IfpicBroad.Scale (CurJL, maxhigh)-(CurJL + ts + 1, minlow)
    For i = CurJL To MaxJL
        If hq(i).spj > hq(i).kpj Then
            DrawColor = QBColor(12)
        ElseIf hq(i).spj < hq(i).kpj Then
            DrawColor = QBColor(10)
        Else
            DrawColor = QBColor(15)
        End If
        picBroad.Line (i + 0.2, hq(i).kpj)-(i + 0.8, hq(i).spj), DrawColor, BF
        picBroad.Line (i + 0.5, hq(i).zgj)-(i + 0.5, hq(i).zdj), DrawColor
    Next
    End Sub
    Private Sub DrawVolume(picBroad As PictureBox, CurJL As Long, ts As Long, maxhigh As Double, minlow As Double)   '画K线
    '画成交量
    Dim DrawColor As Long
    Dim i As Long
    Dim MaxJL As LongpicBroad.Cls
    picBroad.Scale
    If CurJL + ts > UBound(hq) Then
        MaxJL = UBound(hq)
    Else
        MaxJL = CurJL + ts
    End IfpicBroad.Scale (CurJL, maxhigh)-(CurJL + ts + 1, minlow)
    For i = CurJL To MaxJL
        If hq(i).spj > hq(i).kpj Then
            DrawColor = QBColor(12)
        ElseIf hq(i).spj < hq(i).kpj Then
            DrawColor = QBColor(10)
        Else
            DrawColor = QBColor(15)
        End If
        picBroad.Line (i + 0.2, hq(i).cjl)-(i + 0.8, minlow), DrawColor, BF
        
    Next
    End Sub
    Private Sub DrawAvangeKline(picBroad As PictureBox, CurJL As Long, ts As Long, maxhigh As Double, minlow As Double, AvangeTs As Long, DrawColor As Long)  '画K线
    '画均线
    Dim i As Long
    Dim MaxJL As Long
    Dim PointValue() As Double
    Dim j As Long
    Dim StartX As Double, StartY As Double
    picBroad.Scale
    If CurJL + ts > UBound(hq) Then
        MaxJL = UBound(hq)
    Else
        MaxJL = CurJL + ts
    End If
    ReDim PointValue(CurJL To MaxJL)
    picBroad.Scale (CurJL, maxhigh)-(CurJL + ts + 1, minlow)For i = CurJL To MaxJL
        If i >= AvangeTs Then
            PointValue(i) = 0
            For j = i - AvangeTs + 1 To i
                PointValue(i) = PointValue(i) + hq(j).spj
            Next
            PointValue(i) = PointValue(i) / AvangeTs
            If i > CurJL Then
                picBroad.Line (StartX, StartY)-(i + 0.8, PointValue(i)), DrawColor
                StartX = i + 0.8
                StartY = PointValue(i)
            Else
                StartX = i
                StartY = PointValue(i)
            End If
        Else
            PointValue(i) = 0
        End If
    Next
    End Sub