[Vb6]中如何消除MSchart的閃爍現象

  • 3230
  • 0

摘要:[Vb6]中如何消除MSchart的閃爍現象

MSChart控件是用來將若干組數據以棒圖、餅圖、曲線圖等圖形方式顯示出來的一種很方便、快捷的控件。但是每當數據刷新時,MSChart控件總會在屏幕上出現一種亮白色的閃爍現象,而且機器速度越慢,閃爍現象越明顯。在這裡提供一種用PictureBox控件解決閃爍問題的方法。

1、在有MSChart控件的窗體中另外加入一個PictureBox控件,如MSChart1和Picture1。
2、使Picture1和MSChart1大小一致,位置相同(通過左對齊和頂端對齊)。
3、使Picture1在MSChart1前端,設置Picture1的Visible為False,即不可見。只有刷新數據時Picture1才顯示。
4、包括MSChart1第一次賦值和刷新數據兩個過程。如下:

註釋:初始化過程
Private Sub Form_load()
Dim V_char()註釋:n維數組
Dim I as Integer註釋:計數變量
Dim V_series as Integer註釋:標記幾個系列的變量……
MSChart1.ChartData = V_char註釋:給MSChart1初始化賦值

For I = 1 To V_series
……
註釋:必須以此方式顯示圖例,否則Picture控件不能顯示
MSChart1.DataGrid.ColumnLabel(I, 1) =圖例
Next I

MSChart1.Backdrop.Fill.Style = VtFillStyleBrush
註釋:按需要設置MSChart1的背景色,否則Picture1會顯示白色
MSChart1.Backdrop.Fill.Brush.FillColor.Set 192, 192, 192
End Sub

註釋:刷新數據過程
Private Sub Refresh()
Dim V_newchar()註釋:n維數組
……
Picture1.Visible = True
MSChart1.ChartData = V_newchar註釋:給MSChart1重新賦值,即刷新數據

MSChart1.EditCopy註釋:將當前圖表的圖片複製到剪貼板中
Picture1.Picture = Clipboard.GetData()註釋:給Picture1賦值剪貼板中的圖片
End Sub

這樣每一次刷新數據時Picture1顯示的圖片都不會產生閃爍現象


轉貼來源:http://www.cnsdn.com.cn/inc/show.asp?id=4355