PC-ShutdownEvent wird nicht richtig aufgefangen von wxProgramm



  • Hallo liebe Forengemeinde,

    ich habe folgendes Problem:
    Ich habe ein kleines Programm, dass mit Dateien(und deren Handles) jongliert. Es handelt sich dabei um ein C++ wxWidget-Projekt. Nun möchte ich, dass wenn ich den PC herunterfahre, dass das Programm ein paar Aufräumarbeiten macht und sich dann beendet, da sonst der PC immer abstürzt. Hier nun mein Ansatz:

    App.h

    class MyApp : public wxApp     //Hauptapplikationsklasse
    {
        public:
    
            virtual bool OnInit();
    
        protected:
    
            void SessionEnd(wxCloseEvent& e)
            {
                 Frame->OnShutdown();
            }
    
        private:
    
            MyFrame* Frame;
    
            DECLARE_EVENT_TABLE();
    };
    

    App.cpp

    BEGIN_EVENT_TABLE(MyApp,wxApp)
        EVT_END_SESSION(MyApp::SessionEnd)
    END_EVENT_TABLE()
    
    bool MyApp::OnInit()
    {
        //(*AppInitialize
        bool wxsOK = true;
        wxInitAllImageHandlers();
        if ( wxsOK )
        {
            Frame = new MyFrame(0);
            SetTopWindow(Frame);
        }
        //*)
        return wxsOK;
    }
    
    IMPLEMENT_APP(MyApp);
    

    OnShutdown ist in der Frame.cpp definiert.
    Problem ist nur, dass diese Funktion nie ausgeführt wird. Ich kann allerdings nicht erkennen, ob das System den wxEVT_END_SESSION nicht sendet oder er nicht aufgefangen wird. Auch mit Connect habe ich kein richtiges Ergebnis erhalten.

    Bedanke mich schonmal im voraus 👍


Log in to reply