将视频放到一个指定句柄的窗口内播放:Put命令。缺省情况下,MCI函数会开启一个新窗口来播放视频,但这样有时不方便,因为若要实现一些功能,如在视频窗口内单击鼠标右键时弹出功能菜单,在MCI缺省提供的窗口内无法实现,而如果把视频放到窗体上或窗体内一个Picture上,问题就好解决了,Put指令的用法如下:
第一步:打开一个设备时指定显示窗口句柄:open 设备 alias 别名 parent 显示窗口句柄 style child.
第二步:用PUT命令规定显示范围:Put 设备的别名 window at 范围left top width height,这里范围是指在指定显示窗口中视频所占范围,以象素为单位。
第三步:用PLAY命令播放。注意应用设备的别名来指定设备。
第四步:用CLOSE命令关闭设备。如下:
Private Sub Command1_Click()
mciSendString "open e:/abc.avi alias TheVideo parent " & Picture1.hWnd & " style child", 0&, 0&, 0&
mciSendString "put TheVideo window at 0 0 " & Picture1.ScaleWidth & " " & Picture1.ScaleHeight, 0&, 0&, 0&
mciSendString "play TheVideo", 0&, 0&, 0&
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close TheVideo", 0&, 0&, 0&
End Sub
第一步:打开一个设备时指定显示窗口句柄:open 设备 alias 别名 parent 显示窗口句柄 style child.
第二步:用PUT命令规定显示范围:Put 设备的别名 window at 范围left top width height,这里范围是指在指定显示窗口中视频所占范围,以象素为单位。
第三步:用PLAY命令播放。注意应用设备的别名来指定设备。
第四步:用CLOSE命令关闭设备。如下:
Private Sub Command1_Click()
mciSendString "open e:/abc.avi alias TheVideo parent " & Picture1.hWnd & " style child", 0&, 0&, 0&
mciSendString "put TheVideo window at 0 0 " & Picture1.ScaleWidth & " " & Picture1.ScaleHeight, 0&, 0&, 0&
mciSendString "play TheVideo", 0&, 0&, 0&
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close TheVideo", 0&, 0&, 0&
End Sub