CWnd anzeigen



  • Meine CStart-KLasse habe ich von CWnd abgeleitet. In meiner Anwendung habe ich
    in der Funktion InitInstance folgendes geschrieben:

    CStart* start = new CStart;
    start->ShowWindow(SW_SHOW);
    start->UpdateWindow();

    Es kommt aber zum Abbruch bei ShowWindow().
    Wahrscheinlich muss ich die Create-Funktion mit Code füllen. Aber wie ?



  • Du musst das Fenster erst mal erstellen. Dazu solltest du vor ShowWindow

    start->CreateEx(...)
    

    aufrufen.



  • Mit der CWnd-Klasse möchte ich einen Startbildschirm bauen. Mit ::Sleep(3000).
    Wie würdet Ihr vorgehen ?



  • Also wenn dein Programm so lange warten soll bis die zeit abgelaufen ist und dann erst weiter laufen soll, dann worde ich es über einen modalen Dialog machen. Die Zeit würde ich über einen Timer laufen lassen, dann musst du nicht mit Sleep rumalbern. Wenn die Zeit abgelaufen ist rufst du einfach onCancel() auf und der Dialog schließt sich und dein Programm läuft weiter.

    Soll dein Programm weiter laufen dann würde ich wie du schon angefangen hast ein Window erstellen und in dem dann den Timer setzen und nach der gewünschten Zeit das Window schließen.

    Beide Varanten sind sehr ähnlich, aber wie gesagt ich würde die Zeit mit SetTimer() über den Timer laufen lassen, bei Sleep ergeben sich ungeahnte nebenefekte, wie das angezeigt wird das deine Anwendung nicht mehr reagiert, weil du den Messageloop nicht mehr bedienst.


Anmelden zum Antworten