P
Das Problem beim Panel ist, das ich nur Graues BtnFace im
Bild erhalte, ich habe es so versucht und normalerweise
müßte es auch Funktionieren, tut es aber nicht. Ich habe
das gleiche auch mit anderen möglichen Komponenten versucht,
ohne Erfolg, das Einzige was bei mir Funktioniert ist die
Form.
Fullscreen, schon mal einen Player geschrieben mit Verwendung
des FAQ-Link Beispiels? (Der Link)
Der Reihe nach:
// Get a handle to the MediaPlayer display window
// may be "AVIWnd32" for WinNT
HDisplayWindow = FindWindow("AVIWnd", NULL);
Also erst mal Prüfen auf welches System der Player läuft,
oder alle Fenster abfragen und das nehmen welches mit AVIWnd
beginnt.
und man sollte es schon so Schreiben:
HWND HDisplayWindow = FindWindow("AVIWnd", NULL);
sonst weiss der Compiler nicht was HDisplayWindow sein soll.
Ist ja auch nur ein Schönheitsfehler, somit übersehbar.
Das Funktioniert soweit ganz gut, aber wie Steuer ich jetzt
den Player? Ich kann dem AVIwindow doch kein Popup-Menu zuordnen
(Mit einfachen Mitteln wärend der Entwurfzeit).
Und ich möchte gerne per OnMouseMove feststellen ob die Maus im
unteren Bildschirmrand sitzt, damit ich dort die Steuerbuttons
einblenden kann.
Wir haben bei dieser Methode leider ein fremdes Fenster, welches
wir nicht wärend der Entwurfzeit Bearbeiten können, nützen wir
aber unsere Form als Display, so haben wir die Möglichkeiten die
ich oben erwähnte.
Und mit:
SetWindowPos(Form1->Handle, HWND_TOPMOST, 0, 0, Screen->Width, Screen->Height, NULL);
bekommen wir unsere Form auch in Fullscreen. Sollte man jetzt sagen das wir
genauso gut dieses AVI Fenster unseren Vorstellungen anpassen können, dann
hat das nichts mehr mit der IDE und VCL zu tun, das ist dann WinAPI.
Als Zusatz sei noch gesagt, das Capturen aus diesem Player-Fenster
funktioniert auch tadellos, habs getestet.
Graphics::TBitmap *bild = new Graphics::TBitmap;
bild->Width = MediaPlayer1->DisplayRect.Right;
bild->Height = MediaPlayer1->DisplayRect.Bottom;
TCanvas *Capture = new TCanvas();
Capture->Handle = GetDC(HDisplayWindow);
if (Capture->Handle)
bild->Canvas->CopyRect(MediaPlayer1->DisplayRect, Capture, MediaPlayer1->DisplayRect);
delete Capture;
bild->SaveToFile(SaveDialog1->FileName);
delete bild;
gruß Micha