[wxWidgets] Fenster schließt nicht mit Close



  • Hi
    Ich bin im MOment ein bisschen verwirrt, ich hab hier zwei mit wxWidgets geschriebene Programme, ich sehe keinen Unterschied, der was ausmachen sollte, aber eines schließt das Hauptfenster nicht mit Close und somit auch nicht auf dem X oben rechts...
    destroy schaffts aber!

    Das hier ist das Fenster:

    class ToolWindow : public wxFrame
      {
      public:
        ToolWindow(wxWindow* parent, wxWindowID ID ,wxString title, wxPoint pos = wxDefaultPosition, wxSize size = wxDefaultSize);
        void OnQuit(wxCommandEvent&);
      private:
    
    #pragma region PreProcessor
        DECLARE_EVENT_TABLE()
    #pragma endregion
      };
    

    Und die Funktionen sind folgendermaßen implementiert:

    #include "ToolWindow.h"
    
    ToolWindow::ToolWindow(wxWindow* parent, wxWindowID ID ,wxString title, wxPoint pos, wxSize size) : 
      wxFrame(parent, ID, title, pos, size)
      {
      //Setup Menu
      wxMenuBar* menubar = new wxMenuBar;
      wxMenu* file = new wxMenu;
      file->Append(wxID_EXIT, wxT("&Beenden"));
      menubar->Append(file, wxT("&Datei"));
      this->SetMenuBar(menubar);
      }
    
    void ToolWindow::OnQuit(wxCommandEvent&)
      {
      this->Close();
      }
    #pragma region EventTable(PreProcessor)
    BEGIN_EVENT_TABLE(ToolWindow, wxWindow)
      EVT_MENU(wxID_EXIT, ToolWindow::OnQuit)
    END_EVENT_TABLE()
    #pragma endregion
    

    Und erstellt wird das Fenster auch ganz einfach:

    bool Application::OnInit()
      {
      ToolWindow* mainWindow = new ToolWindow(NULL, 0, wxT("NetworkPaint"));
      mainWindow->Show();
      return true;
      }
    

    Ich hoffe jemand findet, was ich nicht finden kann=)
    Und wenn schonmal jemand etwas mit Alphakanal gezeichnet hat, könnte er mir netterweise hier helfen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-205670.html


  • Mod

    Der EventTable ist i.d.R. über den Methoden, und das pragma region da sehe ich auch das erste mal, wie siehts ohne aus?

    phlox



  • Ich habe die Eventtable mal über die Methoden verlegt, aber geändert hat sich nichts. In den Header kann ich es nicht verlegen, weil sie dann doppelt definiert wär.
    Und #pragma region ist für Visual Studio und hat auf das Programm keinerlei Auswirkungen, sondern sorgt nur dafür, dass man den Bereich zwischen region und endregion zusammenklappen kann, wie man Funktionen z.B. zusammenklappen kann.


  • Mod

    Ne im Header wäre er ja auch falsch.

    Aber der EventTable ist i.d.R. mit der Parentklasse verbunden.
    So ist das bei mir immer im MainFrame die Klasse wxFrame, und nicht wxWindow.
    Das könnte der Fehler sein.



  • Oh.. ja, das wars, danke!
    Ist durch Unachtsamkeit entstanden.
    Danke=)


Anmelden zum Antworten