Startbildschirm verschwindet



  • Hallo,

    ich habe für mein Programm einen Ladebildschirm erstellt.

    Ich habe es so gemacht, da der Splash-Screen irgendwie nicht für Dialog-Anwendungen geeignet ist, und ich auch einen "echten" Dialog und keine Grafik brauche:
    1. Den Start-Dialog erstellen.
    2. In der Hauptanwendung bei OnInitDialog den Start-Dialog modal anzeigen
    3. Im Start-Dialog die OnIntiDialog hinzufügen.
    4. Im Start-Dialog einen Timer einbauen, der nach 10ms durch OnInitDialog (Start-Dialog) aufgerufen wird.
    5. Im Start-Dialog bei OnTimer den Timer zerstören, den Fortschrittsbalken laufen lassen und anschließend CDialog::OnOK() aufrufen.

    Wenn ich meine Anwendung über Start->Programme öffne, wird der Dialog angezeigt.

    Wenn ich jedoch irgendwo hin klicke, verschwindet er und wird und wird unsichtbar... ???
    Er ist irgenwie immer weg, wenn die Anwendung den Focus verliert, auch wenn ich nur auf den Desktop klicke...
    Kann es ein Problem sein, dass ich die Titelleiste ausgeblendet habe?

    Kann man irgendwie erzwingen, dass der Dialog immer angezeigt wird? Etwa so wie der Start-Screen des Adobe-Readers?

    mfg

    trequ



  • Ich habe gerade in den FAQs einen Beitrag gefunden, wie man Enter und OK unterbindet:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39095
    Darin wird beschrieben, das man für die Entertaste die Funktion OnOK() und für die Escape-Taste die OnCancel() Funktion überschreiben muss.

    Mein Problem:
    Es ist bei mir ein Dialog, der von einem anderen Dialog aufgerufen wird.
    In diesem Dialog sind die Funktionen nicht vorhanden und ich finde keine Möglichkeit sie hinzuzufügen.
    Wo finde ich die? Ist das WM_CANCEL? ein WM_OK gibt es nicht in der Liste...???

    mfg
    trequ



  • Das sind virtuelle Funktionen.

    Einfach im Header und im Cpp hinschreiben. 🙂



  • Hallo,

    danke für die Info, habe ich eingebaut.

    Scheint zu funktionieren, ESC und Enter brechen nicht mehr ab.

    Aber es wird trotztem nicht immer angezeigt... --> ???
    Wenn ich in C++ auf das rote ! klicke, dann ist einmal der Startbildschirm im Vordergrund, und manchmal das C++ Studio, welches den Startbildschirm verdeckt.
    Soll aber nicht sein, wie kann man den Vordergrund erzwingen?

    mfg
    trequ



  • trequ schrieb:

    wie kann man den Vordergrund erzwingen?

    Du musst bei den "More Styles" in den Einstellungen deines Dialogs "system modal" aktivieren ...

    Gruß
    :: NoName ::



  • Hallo,

    danke, jetzt ist er immer im Vordergrund, wird aber nicht immer angezeigt...??

    mfg
    trequ



  • Wie er wird nicht mehr angezeigt ?
    Kommt gar nix mehr oder verschwindet er gleich wieder.. ?

    Gruß
    :: NoName ::



  • Wenn ich die Anwendung starte, sehe ich ihn in 50% aller Starts.
    In den anderen 50% sehe ich gar nix.

    Es dauetert, dann erscheint die Anwendung.
    Wärend die Anwendung lädt, sollte aber eigentlich der Startbildschirm erschienen. (immer)

    mfg
    trequ



  • Hmm, dann lass system modal aus den Styles weg und versuchs mit SetWindowPos()

    Gruß
    :: NoName ::



  • Hallo,

    hilft leider auch nichts.

    Aber ich habe jetzt rausgefunden, wann der Fehler auftritt.
    Wenn ich z.B. Visual Studio offen habe, und sich in der Task-Leiste rechts neben dem VisualStudio noch ein Element befindet, z.B. der InternetExplorer, wird der Startbildschirm nicht dargestellt.
    Wenn VisualStudio die einzige, oder die Anwendung welche in der Taskleiste ganz rechts steht, ist, funktioniert es.

    Beispiel:
    Start - Quickstart - Outlook - VisualStudio C++ -> Geht
    Start - Quickstart - Outlook - VisualStudio C++ - Eine Anwendung -> Geht nicht

    Woran liegt das und wie werde ich das los?

    mfg
    trequ


Anmelden zum Antworten