VB小用
已经好久没用VB了,今天接到项目,不得已而重新开始边学边搞这个,就今天用到的东西稍做整理。
回调函数,我发现被回调的函数必须放在标准模块文件内,以供窗体文件调用,要不然在窗体中并不一定都能编译成功,不过有些还是可以编译的,本人不是很懂,我就简单的用了以下函数:
在模板文件中的函数为:
Declare Function CYUSBCAM_DisableDrawDisplay Lib "CYUSBCAM" () As Long
Declare Function CYUSBCAM_SetCaptureCallback Lib "CYUSBCAM" (ByVal pFun As Long, ByVal pParam As Long) As Long
Declare Function CYUSBCAM_SaveFile Lib "CYUSBCAM" (ByVal FileName As String, ByVal Typ As Byte) As Long
Function CaptureProc(ByVal lParam As Long) As Long
'自定义回调函数,本程序采用时间作为图片名称
Dim s As String
Dim sTime As Date
CYUSBCAM_DisableDrawDisplay
sTime = Now
s = App.Path + "/" + Str(Hour(sTime)) + "'" + Str(Minute(sTime)) + "'" + Str(Second(sTime)) + "'" + ".jpg"
'保存图像
CYUSBCAM_SaveFile s, 100
End Function
在窗体文件中的函数代码为:
Private Sub Form_Load()
If CYUSBCAM_SystemInit = 1 Then
MsgBox "设备错误"
Else
'设置显示设备DC
CYUSBCAM_ConfigHDC Me.hDC
'设置视频大小
CYUSBCAM_SetVideoSize 0
'设置拍摄回调函数
CYUSBCAM_SetCaptureCallback AddressOf CaptureProc, Me.hWnd
'设置曝光量
CYUSBCAM_SetColorFeature 1, 1048
'设置增益
CYUSBCAM_SetColorFeature 2, 0
End If
End Sub
获得当前时间本来想用DateTime的,但是编译说不能用,只好采用Date,用Now()函数得到当前时间,然后再分别用Hour()、Minute()和Second()函数将其转换成所要取得的时间值,再用Str()函数转换为字符串形式,再用字符串相加保存下来。