投稿者 魔界の仮面弁士  (社会人) 投稿日時 2016/4/6 16:49:31
これでどうでしょう。

Dim cs As Size = PictureBox1.ClientSize
SendString(String.Format("put MyMovie destination at 0 0 {0} {1}", cs.Width, cs.Height))


なお、MCI コマンドの一覧を知りたい場合は下記を参照してみてください。
https://msdn.microsoft.com/en-us/library/dd743572.aspx

> StretchImageのようにできませんか? 

初期表示は、SizeMode = Normal 相当の表示ですね。

手持ちの動画ファイルで試してみましたが、上記のコードを実行しても、
表示結果が Zoom になるか StretchImage になるかは、元の動画に依存するようです。


縦横比が固定な動画は、常に Zoom 相当の表示になりましたし、
縦横比の縛りが無い場合は、StretchImage 相当で表示されました。


> pictureboxのサイズによって、動画が見きれてしまうのですが

なお、StretchImage で表示される動画の場合、
Zoom 相当の表示(縦横比を維持して縮小/拡大)するために、
元の動画サイズを調べる必要があります。今回は関係ないですが。


Private Function GetSourceRect() As Rectangle
    Dim resText As New String(ControlChars.NullChar, 128)
    Dim ret As Integer = mciSendString("where MyMovie source", resText, 128, 0)
    If ret = 0 Then
        Dim ltwh() As String = Split(resText.TrimEnd(ControlChars.NullChar))
        Return New Rectangle(CInt(ltwh(0)), CInt(ltwh(1)), CInt(ltwh(2)), CInt(ltwh(3)))
    Else
        Return Rectangle.Empty
    End If
End Function


「where デバイス名 source」だと、元動画の大きさを返します。
「where デバイス名 destination」で、現在の描画領域を返します。