首页上一页 1 下一页尾页 1 条记录 1/1页
visual bisic开发实战1200例第二卷
发表在VB答疑区
2014-03-21
是否精华
是
否
版块置顶:
是
否
visual bisic开发实战1200例第二卷 42页问题实例016
我是你们忠心读者买了贵公司很多图书,上次音频文件不可识别问题已经弄好了,
那是识别WAV文件头产生错误,现在有好多问题弄不懂想请教一下,
Pic2(picturebox) pic5控件是为单声道和双声道设置的,
为什么里面还有1个picturebox控件还有两个Line1和Line3控件有什么作用呢?
我想用Print语句每运行一个画图过程就打印到picturebox控件里面,
来看一下程序是怎样画波形图的,应该在那里加代码才可以在调试代码中看到画图过程。烦请译教。
请解说一下下面代码和思路
Stereo8:
Pic2.CurrentX = 0
Pic2.CurrentY = 0
Pic2.Print "Left"
Pic4.CurrentX = 0
Pic4.CurrentY = 0
Pic4.Print "Left"
Pic5.Line (0, yzero)-(xmax, yzero)
Pic5.Line (0, yzero - ymax * ymult)-(xmax, yzero - ymax * ymult), &HFF&
Pic5.Line (0, yzero + ymax * ymult)-(xmax, yzero + ymax * ymult), &HFF&
Pic5.CurrentX = 0
Pic5.CurrentY = 0
Pic5.Print "Right"
Pic7.Line (0, yzero)-(xmax, yzero)
Pic7.Line (0, yzero - ymax * ymult)-(xmax, yzero - ymax * ymult), &HFF&
Pic7.Line (0, yzero + ymax * ymult)-(xmax, yzero + ymax * ymult), &HFF&
Pic7.CurrentX = 0
Pic7.CurrentY = 0
Pic7.Print "Right"
If Nbits = 16 Then GoTo Stereo16
yPos = Int(yzero + 7 * 128)
Get #1, InData, yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.PSet (xzero, yGraf)
Pic4.PSet (xzero, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.PSet (xzero, yGraf)
Pic7.PSet (xzero, yGraf)
If LenData <= Pic2.ScaleWidth Then
nMult = Pic2.ScaleWidth / LenData
For n = 1 To LenData - 1
xPos = Int(n * nMult)
Get #1, , yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.Line -(xPos, yGraf)
Pic4.Line -(xPos, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.Line -(xPos, yGraf)
Pic7.Line -(xPos, yGraf)
Next n
Else
For n = 1 To 9999
ySel = InData + 2 * Int(n * ySelFat)
Get #1, ySel, yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.Line -(n, yGraf)
Pic4.Line -(n, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.Line -(n, yGraf)
Pic7.Line -(n, yGraf)
Next n
End If
GoTo Done
Stereo16:
Get #1, InData, yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.PSet (xzero, yGraf)
Pic4.PSet (xzero, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.PSet (xzero, yGraf)
Pic7.PSet (xzero, yGraf)
If LenData <= Pic2.ScaleWidth Then
nMult = Pic2.ScaleWidth / LenData
For n = 1 To LenData - 1
xPos = Int(n * nMult)
Get #1, , yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.Line -(xPos, yGraf)
Pic4.Line -(xPos, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.Line -(xPos, yGraf)
Pic7.Line -(xPos, yGraf)
Next n
Else
For n = 1 To 9999
ySel = InData + 4 * Int(n * ySelFat)
Get #1, ySel, yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.Line -(n, yGraf)
Pic4.Line -(n, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.Line -(n, yGraf)
Pic7.Line -(n, yGraf)
Next n
Print n
End If
Done:
End Sub
我是你们忠心读者买了贵公司很多图书,上次音频文件不可识别问题已经弄好了,
那是识别WAV文件头产生错误,现在有好多问题弄不懂想请教一下,
Pic2(picturebox) pic5控件是为单声道和双声道设置的,
为什么里面还有1个picturebox控件还有两个Line1和Line3控件有什么作用呢?
我想用Print语句每运行一个画图过程就打印到picturebox控件里面,
来看一下程序是怎样画波形图的,应该在那里加代码才可以在调试代码中看到画图过程。烦请译教。
请解说一下下面代码和思路
Stereo8:
Pic2.CurrentX = 0
Pic2.CurrentY = 0
Pic2.Print "Left"
Pic4.CurrentX = 0
Pic4.CurrentY = 0
Pic4.Print "Left"
Pic5.Line (0, yzero)-(xmax, yzero)
Pic5.Line (0, yzero - ymax * ymult)-(xmax, yzero - ymax * ymult), &HFF&
Pic5.Line (0, yzero + ymax * ymult)-(xmax, yzero + ymax * ymult), &HFF&
Pic5.CurrentX = 0
Pic5.CurrentY = 0
Pic5.Print "Right"
Pic7.Line (0, yzero)-(xmax, yzero)
Pic7.Line (0, yzero - ymax * ymult)-(xmax, yzero - ymax * ymult), &HFF&
Pic7.Line (0, yzero + ymax * ymult)-(xmax, yzero + ymax * ymult), &HFF&
Pic7.CurrentX = 0
Pic7.CurrentY = 0
Pic7.Print "Right"
If Nbits = 16 Then GoTo Stereo16
yPos = Int(yzero + 7 * 128)
Get #1, InData, yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.PSet (xzero, yGraf)
Pic4.PSet (xzero, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.PSet (xzero, yGraf)
Pic7.PSet (xzero, yGraf)
If LenData <= Pic2.ScaleWidth Then
nMult = Pic2.ScaleWidth / LenData
For n = 1 To LenData - 1
xPos = Int(n * nMult)
Get #1, , yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.Line -(xPos, yGraf)
Pic4.Line -(xPos, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.Line -(xPos, yGraf)
Pic7.Line -(xPos, yGraf)
Next n
Else
For n = 1 To 9999
ySel = InData + 2 * Int(n * ySelFat)
Get #1, ySel, yByte '左声道
yGraf = yPos - 7 * yByte '15 * yByte
Pic2.Line -(n, yGraf)
Pic4.Line -(n, yGraf)
Get #1, , yByte '右声道
yGraf = yPos - 7 * yByte
Pic5.Line -(n, yGraf)
Pic7.Line -(n, yGraf)
Next n
End If
GoTo Done
Stereo16:
Get #1, InData, yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.PSet (xzero, yGraf)
Pic4.PSet (xzero, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.PSet (xzero, yGraf)
Pic7.PSet (xzero, yGraf)
If LenData <= Pic2.ScaleWidth Then
nMult = Pic2.ScaleWidth / LenData
For n = 1 To LenData - 1
xPos = Int(n * nMult)
Get #1, , yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.Line -(xPos, yGraf)
Pic4.Line -(xPos, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.Line -(xPos, yGraf)
Pic7.Line -(xPos, yGraf)
Next n
Else
For n = 1 To 9999
ySel = InData + 4 * Int(n * ySelFat)
Get #1, ySel, yint '左声道
yGraf = yzero - yint / 35 '17
Pic2.Line -(n, yGraf)
Pic4.Line -(n, yGraf)
Get #1, , yint '右声道
yGraf = yzero - yint / 35
Pic5.Line -(n, yGraf)
Pic7.Line -(n, yGraf)
Next n
Print n
End If
Done:
End Sub