注册 登录
编程论坛 VB6论坛

VB6.0中保存MSChart图形时图例显示不一致问题

小明0000 发布于 2018-01-31 17:27, 2427 次点击
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


VB6.0中使用MSChart绘制曲线,在窗体中显示时图例是我需要的内容,但是在我保存为图片(.JPG)时,保存的图片中图例显示为C1、C3、C5。想问一下是什么原因导致的?如何修改?
6 回复
#2
xiangyue05102018-02-01 09:46
这个图不是你自己编写的代码吧,其中图例标题部分也怀疑是用其他方式遮罩原来的内容形成。具体如何没有代码无法判断。
修改图形序列的图例标题的代码如下,你可以试试

  MSChart1.DataGrid.ColumnLabel(1, 1) = "序列1"
  MSChart1.DataGrid.ColumnLabel(2, 1) = "序列2"
#3
小明00002018-02-01 10:09
回复 2楼 xiangyue0510
绘图部分代码:
With Form2.MSChart1
    .Plot.SeriesCollection(1).Pen.Width = 30
    .Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid
    .Plot.SeriesCollection(3).Pen.Width = 30
    .Plot.SeriesCollection(3).Pen.Style = VtPenStyleSolid
    .Plot.SeriesCollection(5).Pen.Width = 30
    .Plot.SeriesCollection(5).Pen.Style = VtPenStyleSolid
     
    .Plot.SeriesCollection(1).LegendText = "上游水位" & h_min1 & "m"
    .Plot.SeriesCollection(3).LegendText = "上游水位" & (h_min1 + h_max1) / 2 & "m"
    .Plot.SeriesCollection(5).LegendText = "上游水位" & h_max1 & "m"
    .chartType = VtChChartType2dXY      '设置图形为二维散点图
End With

保存图片部分代码:
Private Sub Command1_Click()
    Image1.Stretch = True
    Clipboard.Clear
    MSChart1.EditCopy
    Image1.Picture = Clipboard.GetData(vbCFBitmap)
    Clipboard.Clear   '清除粘贴板
    SavePicture Image1, "C:\Users\Administrator\Desktop\temp\安全始流曲线.jpg"
End Sub

相关的代码是这样的,麻烦您再看一下问题出在什么地方?

[此贴子已经被作者于2018-2-1 10:15编辑过]

#4
小明00002018-02-01 16:43
回复 2楼 xiangyue0510
求解答!!!
#5
xiangyue05102018-02-02 09:27
回复 4楼 小明0000
不好意思,这两天没注意你这个帖子。
我试验了一下你的代码,确实是存在这个问题。应该是plot绘制出来的东西是遮罩的味道,在保存的时候无法输出。具体的只有看到Mschart的源代码才有可能知道。
我也试了一下,用的前面提到的ColumnLabel是没有问题的。
#6
小明00002018-02-02 11:14
回复 5楼 xiangyue0510
尝试了ColumnLabel,的确可以,谢谢!
#7
xiangyue05102018-02-02 13:42
回复 6楼 小明0000
不客气
1