Fenster mit topmost position



  • Ich schreibe gerade an einem neuen UI für mein Programm (MediaPlayer). Das laufende Video soll das ganze Fenster ausfüllen, die besagte UI (Play,Pause, Trackbar, div. anderes Zeug) soll nur dann erscheinen wenn der Benutzer die maus bewegt.
    Mein Problem besteht nun darin, dass mein plan nur aufgeht, wenn kein Video Renderer erstellt ist (also kein Video läuft/angezeigt wird). Ist das der Fall, wird mein Fenster ständig überdeckt.
    Leider kann man das nicht mit SetWindowPos(HWND, HWND_TOPMOST,0,0,0,....) beheben, weil das Video von DirectShow aufgebaut wird und mit der MessageLoop an sich nicht viel zu tun hat.

    Gibt es irgendwelche realen Chancen, dass mein Fenster nicht vom Renderer "übermalt" wird?

    Danke für alle Anstrengungen im Voraus!


  • Mod

    Läuft das als Vollbild? Wenn ja musst Du auch mit DirectX weiter machen. Mit Fenstern kommst Du da IMHO nicht weiter...



  • Bin jetzt erst über deine Antwort gestolpert....

    Danke, jetzt bin ich klüger und werds sobald ich Zeit hab auch umsetzen.
    Meine jetzige Methode (Fenster im WS_POPUP-Style darüberlegen) funktioniert zwar, aber ist doch ein wenig hässlich^^



  • Wenn es mit WS_POPUP geht, sollte es auch ohne WS_POPUP gehen, wenn du dafür WS_CLIPCHILDREN und WS_CLIPSIBLINGS setzt.


Anmelden zum Antworten