Minimieren eines Fensters verhindern



  • Hallo liebe Community,

    Ich hab folgendes Problem:
    Ich schreibe eine wisschenschaftliche Anwendung und visualisiere Dinge mit Hilfe von Direct3D (keine Angst das Problem hat NICHTS mit D3D zu tun 😉 ).
    An den Rechner sind zwei Bildschirme angeschlossen, wobei auf dem einen Bildschirm die Applikation im VOLLBILDMODUS läuft, während auf dem anderen Bildschirm eine Dialogbox zur Steuerung zu sehen ist.
    Das Problem ist, dass sich beim Klicken auf die Dialogbox bzw. irgendwo auf den 2.Desktop die Hauptanwendung minimiert, was es in meinem Fall um jeden Preis zu verhindern gilt.
    Meine Diagnose soweit: Die Vollbildanwendung verliert den Focus und bekommt (da Vollbild) eine Message vom Betriebssystem sich zu minimieren.
    Abfangen von Messages in der WinProc wie: SC_MINIMIZE, WM_NCLBUTTONDOWN, etc. bewirken nichts, da sie nicht verschickt werden bei diesem Event.
    Ich vermute schon fast, dass es nicht möglich ist zu verhindern, dass meine Applikation sich minimiert, aber vielleicht weiss jemand von euch doch etwas.
    Würde mich auch schon freuen, wenn mir jemand den genauen Hintergrund erklärt, warum das nicht funktionieren kann. 🙂

    Vielen Dank im voraus,

    Schnaaki



  • ich bin mir nicht sicher ob's hilft, aber probier mal

    case WM_ACTIVATE:
        return 0;
    

    in der WndProc 🙂



  • Hallo,

    Danke für die schnelle Antwort!
    Leider wird kommt die Nachricht WM_ACTIVATE nur beim Starten des Fensters an. Beim oben beschriebenen Klicken in einen anderen Bereich wird sie nicht an das Fenster gesendet. Schade... :p

    Vielleicht jemand anderes noch eine Idee?

    Viele Grüße,
    Schnaaki



  • mmhh, eigenartig. ich habe ein (vom aufbau) ähnliches programm geschrieben, wo ich dieses verhalten nicht reproduzieren kann. im vollbildmodus verändere ich den fensterstil allerdings auf

    WS_POPUP
    

    und den erweiterten stil auf

    WS_EX_APPWINDOW
    

    vielleicht liegts daran?



  • spy++ selber naxhgucken



  • Danke euch beiden!!! 🙂
    Ihr hattet beide Recht. Die entscheidende Message war WM_NCACTIVATE, lag also schon verdammt nah dran. Und wie hab ich das rausgefunden? Indem ich Message für Message mittels Spy++ rausgefiltert hab, die nicht relevant war.
    Echt super, dass Ihr dieses Problem so schnell gelöst habt. Habe auf etlichen anderen Forenseiten gelesen, dass das "vom Betriebssystem Windows" her gar nicht möglich ist. So ganz konnte ich das nicht glauben, sonst hät ich hier nicht nachgefragt.
    Werde dieses Forum wärmstens weiterempfehlen!
    Tausend Dank nochmal! 🙂

    Schnaaki



  • Schnaaki schrieb:

    Habe auf etlichen anderen Forenseiten gelesen

    andere forenseiten? 😮 jehova! 😃


Anmelden zum Antworten