我用MCI,mmcontrol播放avi,图像绑定到一个picture上。怎么才能让,avi的画面和picture box 的尺寸一样?
Private Sub Command1_Click()
    MMControl1.hWndDisplay = Picture1.hWnd
    MMControl1.filename = "c:\winnt\clock.avi"
    MMControl1.DeviceType = "AVIVIDEO"
    Picture1.AutoRedraw = True
    MMControl1.Command = "OPEN"
    MMControl1.To = 1
    MMControl1.Command = "SEEK"
    MMControl1.Command = "PLAY"
End Sub另外,像要播放.wav 和.mid的文件,MMControl1.DeviceType 因该是什么?我没找到帮助文件。多谢!!

解决方案 »

  1.   

    .wav 
    Waveaudio
    .mid
    Sequencer
      

  2.   

    如果想知道你的机器上可支持那些媒体类型,可以查看登录数据库中HKLM\System\CurrentControlSet\Control\MediaResources\mci底下含有那些子机码,每一个子机码即代表一种媒体类型
    画面什么问题呢?
      

  3.   

    登录数据库在什么地方?怎么才能找到?我用MCI,mmcontrol播放avi,图像绑定到一个picture上。怎么才能让,avi的画面和picture box 的尺寸一样?就是avi的画面根据picture box 的尺寸缩放?
    多谢!!
      

  4.   

    用mciSendString函数吧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 LongPrivate Sub Command1_Click()
        Me.ScaleMode = vbPixels    mciSendString "stop movie", vbNullString, 0, 0
        mciSendString "close movie", vbNullString, 0, 0
        Dim s As String
        s = "D:\test\head.avi"
        mciSendString "open AVIvideo!" & s & " alias movie parent " & picture1.hwnd & " style child", vbNullString, 0, 0
        mciSendString "put movie window client at 0 0 " & picture1.ScaleWidth & " " & picture1.ScaleHeight, vbNullString, 0, 0
        mciSendString "play movie", vbNullString, 0, 0
    End Sub