vb6程序中的一个过程的调用问题!
PrivateSubcmdOpen_Click()'打开文件dialog.DialogTitle="打开一个声音文件"'标题为打开dialog.Filter="mp3fi...
Private Sub cmdOpen_Click() '打开文件
dialog.DialogTitle = "打开一个声音文件" '标题为打开
dialog.Filter = "mp3file(*.mp3)|*.mp3|wavfile(*.wav)|*.wav|All Files(*.*)|*.*" '确定显示的文件类型
dialog.ShowOpen '对话框被指定为打开类型
dialog.FilterIndex = 1
myTimer.Enabled = True '启动
end sub
Private Sub drawSpec()
Call SetDIBitsToDevice(Pic1.hdc, 0, 0, WIDTH_, HEIGHT_, 0, 0, 0, HEIGHT_, wavebuf(-(WIDTH_ / 2)), bh, 0)
End Sub
Private Sub myTimer_Timer()
Call drawSpec
End Sub
我想不用计时器控件,直接把上述“ myTimer.Enabled = True '启动”句用“ Call drawSpec”替代,按“启动”按钮编译程序时提示“实时错误 9.下标越界”。为什么
Call SetDIBitsToDevice(Pic1.hdc, 0, 0, WIDTH_, HEIGHT_, 0, 0, 0, HEIGHT_, wavebuf(-(WIDTH_ / 2)), bh, 0) 过程的调用必须在计时器事件中才正常,否则就下标越界?这种情况下能否不用计时器控件而让程序编译正常(下标不越界)? 展开
dialog.DialogTitle = "打开一个声音文件" '标题为打开
dialog.Filter = "mp3file(*.mp3)|*.mp3|wavfile(*.wav)|*.wav|All Files(*.*)|*.*" '确定显示的文件类型
dialog.ShowOpen '对话框被指定为打开类型
dialog.FilterIndex = 1
myTimer.Enabled = True '启动
end sub
Private Sub drawSpec()
Call SetDIBitsToDevice(Pic1.hdc, 0, 0, WIDTH_, HEIGHT_, 0, 0, 0, HEIGHT_, wavebuf(-(WIDTH_ / 2)), bh, 0)
End Sub
Private Sub myTimer_Timer()
Call drawSpec
End Sub
我想不用计时器控件,直接把上述“ myTimer.Enabled = True '启动”句用“ Call drawSpec”替代,按“启动”按钮编译程序时提示“实时错误 9.下标越界”。为什么
Call SetDIBitsToDevice(Pic1.hdc, 0, 0, WIDTH_, HEIGHT_, 0, 0, 0, HEIGHT_, wavebuf(-(WIDTH_ / 2)), bh, 0) 过程的调用必须在计时器事件中才正常,否则就下标越界?这种情况下能否不用计时器控件而让程序编译正常(下标不越界)? 展开
3个回答
展开全部
一、由于你提供的代码不完整,以致不明白数组wavebuf()及变量WIDTH_、HEIGHT_、bh是怎么来的,所以出现编译程序时提示“实时错误 9.下标越界”现象也不好判断。
二、给你提供一个调试方法:
当你把上述“ myTimer.Enabled = True '启动”句用“ Call drawSpec”替代后,在此处按F9设置断点,然后按F5运行,当程序运行到断点处停下来时,看看数组wavebuf()及变量WIDTH_、HEIGHT_、bh是否已经获取完毕,如果没有,则应完善代码,使程序正确运行。
二、给你提供一个调试方法:
当你把上述“ myTimer.Enabled = True '启动”句用“ Call drawSpec”替代后,在此处按F9设置断点,然后按F5运行,当程序运行到断点处停下来时,看看数组wavebuf()及变量WIDTH_、HEIGHT_、bh是否已经获取完毕,如果没有,则应完善代码,使程序正确运行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询