1,485
社区成员
发帖
与我相关
我的任务
分享
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function SetWindowPos Lib "USER32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Sub PlayVideo(vName As String)
'播放视频文件
Dim tmpVal As String, KeyValSize As Long, result As Long
Picture1.ScaleMode = 3
Picture1.BorderStyle = 0
mciSendString "open " & vName & " type MPEGVideo alias Mympg parent " & Picture1.hwnd & " style child WAIT ", vbNullString, 0, 0
tmpVal = String$(256, 0)
KeyValSize = 256
result = mciSendString("STATUS Mympg WINDOW HANDLE WAIT ", tmpVal, KeyValSize, 0)
tmpVal = Left(tmpVal, KeyValSize)
SetWindowPos CLng(tmpVal), 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, 0
mciSendString "play Mympg ", vbNullString, 0, 0
End Sub
Private Sub Form_Activate()
PlayVideo App.Path & "\dj0.wmv"
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
mciSendString "close Mympg ", vbNullString, 0, 0
End Sub
result = mciSendString("STATUS Mympg WINDOW HANDLE WAIT ", tmpVal, KeyValSize, 0)
这句没有执行成功,导致tmpVal为空,下面调用SetWindowPos 时出错。但是打包后为什么会这样呢,求解!