' *******************************************************
' *
' Description: Visual Basic example building one *
' graph with the Charting Tools for Windows *
' *
' *******************************************************
Option Explicit
Const NUMP1 = 80
Dim fInit As Integer
Dim X1() As Double
Dim Y1() As Double
Sub DrawP1G1 (pGrDesc As Long, hdc As Integer)
Dim hObj As Integer, success As Integer
Dim hAxisX As Integer, hAxisY As Integer
Dim hDataSet As Integer
' define a dataset
hDataSet = WGVBDefineDataSet("60 Cycle Noise",
X1(0), Y1(0), NUMP1)
' define the plotting area of the graph
Call WGSetPlotArea(pGrDesc, hdc, .15, .15, .9, .8, C_LIGHTGRAY)
' axes to be drawn in solid, black, 1 pixel thick
Call WGSetLineStyle(pGrDesc, hdc, PS_SOLID, 1, C_BLACK)
' set current font to Arial, 12 points, bold
Call WGSetTextByName(C_BLACK, "Arial", 10, TEXT_BOLD)
' analyze the data set and automaticaly scale the
' plot area, draw and label the axes
success = WGAutoAxes(pGrDesc, hdc, hDataSet, AS_ROUNDCLOSE,
INTF_ZERO, hAxisX, hAxisY, False, False)
' set line style of actual plot to RED
Call WGSetLineStyle(pGrDesc, hdc, PS_SOLID, 0, C_RED)
' plot the data with spline interpolation on
hObj = WGLinePlot(pGrDesc, hdc, hDataSet, False, True)
' write axes titles
hObj = WGTitleAxis(pGrDesc, hdc, hAxisX, POS_BELOW,
"Sample Interval")
hObj = WGTitleAxis(pGrDesc, hdc, hAxisY, POS_LEFT, "Volts")
' set current font to Arial, 16 points, bold, italic
Call WGSetTextByName(C_GREEN, "Arial", 16,
TEXT_BOLD + TEXT_ITAL)
' write graph title
hObj = WGTitleGraph(pGrDesc, hdc, "Input Waveform")
End Sub
Sub Form_Load ()
Dim i As Integer
Dim pPageDesc As Long
For i = 0 To 4150
TopDesc(i) = 0
Next
pPageDesc = WGCreatePage("Page1", EasyGrafForm.hWnd,
"Easy Graph","PageMenu", C_LIGHTGRAY,
MM_PROPORT, 0, PAGE_CLIENT,
0, 0, 0, 0, TopDesc(0))
Call StartGraphs1(pPageDesc)
Call WGUpdatePage(pPageDesc)
End Sub
Sub Form_Unload()
Call WGCleanup(TopDesc(0), True)
End&127;
End Sub
Sub StartGraphs1 (pPageDesc As Long)
ReDim X1(NUMP1 - 1) As Double
ReDim Y1(NUMP1 - 1) As Double
Dim hdc As Integer, As Integer
Dim pGrDesc As Long
If fInit = True Then
Randomize
fInit = False
For i = 0 To NUMP1 - 1
X1(i) = i
Y1(i) = 15 * Cos(M_PI * i / (4 + .3 * Rnd) + 3 * Rnd)
Next
End If
pGrDesc = WGCreateGraph(pPageDesc, .005, .005, .99, .99,
C_WHITE, C_RED, 1, TopDesc(0), hdc)
Call DrawP1G1(pGrDesc, hdc)
End Sub