ok ich poste den Code , sollte man allerdings nicht so übernehmen denn es werden keine Fehler abgefangen , zum testen ob es geht und zum sehen wie es geht reicht der Code jedoch aus.
Also erstmal ein neues Projekt anlegen , auf die Form1 dann ein Windows Media Player Control ziehen , 3 Commandbuttons, ein Textfeld und eine PictureBox , in diese PictureBox legt man ein Label hinein, die Scale Mode Eigenschaft der PictureBox sollte Pixel sein (da so gut wie alle API Grafik Funktionen Pixel als Parameter benötigen) dann spart man sich das umrechnen.Dann die Background Farbe des PictureBox einstellen und beim Label die Backstyle Eigenschaft auf Transparent , halt so wie man es gerne möchte, bei der Caption Eigenschaft des Labels schreibt man dann noch irgendeinen Text rein.
Nun zum Code
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc _
As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As _
Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal _
hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As _
Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal _
hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As _
String) As Long
Dim VTBanzeigen As Boolean
Private Sub VideoTextBox()
Dim mDC As Long
Dim hWnd_form As Long
Dim hWnd_wmp As Long
hWnd_form = Form1.hWnd
hWnd_wmp = FindWindowEx(hWnd_form, 0, "wmpvideowindow", vbNullString)
If hWnd_wmp = 0 Then Exit Sub
Do
DoEvents
mDC = GetDC(hWnd_wmp)
Call BitBlt(mDC, 15, 30, Form1.Picture1.ScaleWidth, _
Form1.Picture1.ScaleHeight, Form1.Picture1.hdc, 0, 0, vbSrcCopy)
Call ReleaseDC(hWnd_wmp, mDC)
Loop While VTBanzeigen = True
End Sub
Private Sub Command1_Click()
wmp1.URL = Text1.Text
End Sub
Private Sub Command2_Click()
VTBanzeigen = False
End Sub
Private Sub Command3_Click()
VTBanzeigen = True
Call VideoTextBox
End Sub Mit CM1 öffnet man ein Video im Player , der Pfad des Videos steht in dem Textfeld , das Video wird dann auch sofort abgespielt.
CM2 blendet die "VideoTextBox" auf dem VideoBild ein und CM3 blendet die Box wieder aus.
In diesem Beispiel wird die Box allerdings NUR eingeblendet wenn auch ein VideoBild existiert , da ansonsten die hwnd 0 ist und die Box somit irgendwo eingeblendet wird wo man sie gar nicht haben will.
Die API Funktionen die ich verwendet habe werde ich jetzt nicht näher beschreiben da dies eigentlich alles in der MSDN steht mit Beschreibungen der einzelnen Parameter.
Viel Spass beim rumprobieren
Gruss mm78pr
http://msdn.microsoft.com/de-de/default.aspx |