1
Appendix B
Frequency Form Code
'------
'Lance Nicholas Covert
'frmFrequency form (frmFrequency.frm)
'------
'This is the code for the frequency form (the form that
'plots the magnitude and phase responses after the FFT
'is performed).
'This form is displayed on pg. 61 of the Thesis
'This code should be used in conjunction with the
'list of objects and parameters for constructing
'frmFrequency.frm
'------
Option Explicit 'All variables MUST be declared
Dim NumberOfLabels As Integer
'------
'printing the picture box only
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_PAINT = &HF
Private Const WM_PRINT = &H317
Private Const PRF_CLIENT = &H4& ' Draw the window's client area
Private Const PRF_CHILDREN = &H10& ' Draw all visible child
Private Const PRF_OWNED = &H20& ' Draw all owned windows
'------
Private Sub cboExpandYaxis_FreqPlot_Click()
Call frmSamples7.cboExpandYaxis_FreqPlot_Click
End Sub
Private Sub cboExpandYaxis_FreqPlotVolts_Click()
Call frmSamples7.cboExpandYaxis_FreqPlotVolts_Click
End Sub
Private Sub chkDecibels_Click()
Call hsbFrequency_Change
End Sub
Private Sub cmdCursorShiftLeft_Click()
Call frmSamples7.cmdCursorShiftLeft_Click
End Sub
Private Sub cmdPrint_Click()
'Printer.ScaleLeft = picGraph2.Left
'Printer.ScaleTop = picGraph2.Top
'Printer.Width = picGraph2.ScaleWidth
'Printer.Height = picGraph2.ScaleHeight
'------
'use these two statements to print the form
'Note: The contents of the picture box will not be printed.
frmFrequency.PrintForm
Printer.EndDoc
'------
'------
'use this statement to print the contents of the picture box
'frmSamples7.PrintPictureBox frmFrequency.picGraph2, 1000, 1000
'PrintPictureBox frmFrequency, 1000, 1000
'------
End Sub
Private Sub cmdCursorShiftRight_Click()
Call frmSamples7.cmdCursorShiftRight_Click
End Sub
Public Sub Form_Load()
'This subroutine executes when the magnitude/frequency plot form loads.
Dim i As Integer
'number of frequency axis labels on the frmFrequency
NumberOfLabels = 10
For i = 0 To NumberOfLabels - 1
lblHz(i).Width = 500
lblHz(i).Height = 255
Next
i = 0
For i = 0 To 8
frmFrequency.lblYaxisFreq(i).Left = frmFrequency.picGraph2.Left - frmFrequency.lblYaxisFreq(i).Width
Next
i = 1
For i = i To 8
frmFrequency.lblYaxisFreqN(i).Left = frmFrequency.picGraph2.Left - frmFrequency.lblYaxisFreqN(i).Width
Next
frmFrequency.lbldegrees(0).Left = frmFrequency.picGraph3.Left - frmFrequency.lbldegrees(0).Width
For i = 1 To 4
frmFrequency.lbldegrees(i).Left = frmFrequency.picGraph3.Left - frmFrequency.lbldegrees(i).Width
Next
For i = 1 To 4
frmFrequency.lblDegreesN(i).Left = frmFrequency.picGraph3.Left - frmFrequency.lblDegreesN(i).Width
Next
'fill the cboExpandYaxis_FreqPlot combo box
cboExpandYaxis_FreqPlot.AddItem "400 dB/div"
cboExpandYaxis_FreqPlot.AddItem "200 dB/div"
cboExpandYaxis_FreqPlot.AddItem "100 dB/div"
cboExpandYaxis_FreqPlot.AddItem "80 dB/div"
cboExpandYaxis_FreqPlot.AddItem "50 dB/div"
cboExpandYaxis_FreqPlot.AddItem "40 dB/div"
cboExpandYaxis_FreqPlot.AddItem "25 dB/div"
cboExpandYaxis_FreqPlot.AddItem "20 dB/div"
cboExpandYaxis_FreqPlot.AddItem "16 dB/div"
cboExpandYaxis_FreqPlot.AddItem "10 dB/div"
cboExpandYaxis_FreqPlot.AddItem "8 dB/div"
cboExpandYaxis_FreqPlot.AddItem "5 dB/div"
'Default to 40 dB/div on initial load
cboExpandYaxis_FreqPlot.ListIndex = 5
'fill the cboExpandYaxis_FreqPlotVolts combo box
cboExpandYaxis_FreqPlotVolts.AddItem "8 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "4 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "2 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "1 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.8 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.5 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.4 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.2 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.1 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.08 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.05 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.04 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.02 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.01 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.005 V/div"
cboExpandYaxis_FreqPlotVolts.AddItem "0.002 V/div"
'Default to 0.5 V/div on initial load
cboExpandYaxis_FreqPlotVolts.ListIndex = 5
End Sub
Private Sub hsbScroll_FreqPlot_Change()
Call frmSamples7.hsbScroll_FreqPlot_Change
End Sub
Private Sub hsbScroll_FreqPlot_Scroll()
Call hsbScroll_FreqPlot_Change
End Sub
Private Sub vsbExpandYaxis_FreqPlot_Change()
Call frmSamples7.vsbExpandYaxis_FreqPlot_Change
End Sub
Private Sub hsbFrequency_Change()
Call frmSamples7.hsbFrequency_Change
End Sub
Private Sub hsbFrequency_Scroll()
Call frmSamples7.hsbFrequency_Change
End Sub
Private Sub mnuDCComponent_click()
Call frmSamples7.mnuDCComponent_click
End Sub
Private Sub mnuExit2_Click()
frmFrequency.Hide
End Sub
Private Sub vsbZeroAxis_FrequencyPlot_Change()
lblVsbZeroaxis.Caption = vsbZeroAxis_FrequencyPlot.Value 'for testing, just shows the value of the scroll bar
Call frmSamples7.vsbZeroAxis_FrequencyPlot_Change
End Sub
Private Sub vsbZeroAxis_FrequencyPlot_Scroll()
lblVsbZeroaxis.Caption = vsbZeroAxis_FrequencyPlot.Value 'for testing, just shows the value of the scroll bar
Call frmSamples7.vsbZeroAxis_FrequencyPlot_Change
End Sub
Private Sub picGraph2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call frmSamples7.picGraph2_MouseDown(Button, Shift, X, Y)
End Sub
Private Sub picGraph3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Call frmSamples7.picGraph2_MouseDown(Button, Shift, X, Y)
End Sub