Grössenänderung bei WMPlayer.ocx

  • Ich habe ein kurzes Testprogramm zusammengestiefelt, damit man mein Problem sehen kann.
    Wenn bei Euch die angegebene AVI Datei im Windows nicht vorhanden ist, dann einfach durch ein beliebiges kleines Video ersetzen, welches vom Mediaplayer abgespielt werden kann!

    Es geht darum, dass man nach dem starten des Programmes das Fenster in der Grösse ändern soll. Darauf wird ein Event erzeugt (klappt)!
    In diesem Event soll nun das Video in der Grösse als Vollbild angepasst werden.
    Wie kann ich das erreichen?

    Macht Euch um allfällige Verzerrungen etc. keine Sorgen. Im endgültigen Programm kann man das Fenster nur immer im gleichen Verhältnis vergrössern oder verkleinern! Somit wird das Video bestimmt nie verzerrt!

    Hier das Testprogramm
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    $hGUI1 = GUICreate("WDP", 300, 250, -1, -1, $WS_SIZEBOX)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_RESIZED, "_Resize")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    $oWMP1 = ObjCreate("WMPlayer.OCX")
    If Not IsObj($oWMP1) Then Exit
    $hWMP1 = GUICtrlCreateObj($oWMP1, 0, 0, 300, 250)

    [/autoit] [autoit][/autoit] [autoit]

    With $oWMP1
    .URL = "C:\Windows\winsxs\x86_microsoft-windows-t..flicklearningwizard_31bf3856ad364e35_6.1.7600.16385_none_0d580453d317a99d\FlickAnimation.avi"
    Local $iEmergencyTimerWMP = TimerInit()
    While StringInStr(.status(), '...') ;Wait while status = Connecting...
    If TimerDiff($iEmergencyTimerWMP) > 2000 Then ExitLoop
    Sleep(100)
    WEnd
    .settings.autoStart = False
    .controls.stop() ;Stop, to ensure, that they are at the beginning!
    .fullscreen = True
    .stretchToFit = True
    .settings.setMode('loop', True)
    .settings.playCount = 1000000
    .settings.rate = 1
    .uiMode = 'none'
    .settings.volume = 100
    .settings.mute = True
    .enableContextMenu = True
    EndWith

    [/autoit] [autoit][/autoit] [autoit]

    $oWMP1.controls.play()

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(10)
    WEnd
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _Resize()
    Local $aSize = WinGetPos($hGUI1)
    ConsoleWrite("Resize: " & GUICtrlSetPos($hWMP1, 0, 0, $aSize[2], $aSize[3]) & @CRLF)
    EndFunc ;==>_Resize

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Wie kann ich die _Resize Funktion so ändern, dass das Video immer das ganze Fenster ausfüllt?

    Gruss, Veronesi