[wx] Problem mit wechseln der Steuerelemente



  • Sers.
    Ich habe einen wxFrame, der entweder ein wxNotebook oder ein wxSplittedwindow als Child bekommt. Die Anzeige funktioniert soweit auch wunderbar, wenn ich das Programm mit einem der beiden starte. Lösche ich nun allerdings das Child von wxFrame und erstelle es neu, wird es nicht korrekt angezeigt. Weder wxWindow::Refresh() noch Layout() haben hier geholfen. Ich muss immer erst das Fenster zum neuzeichnen zwingen.. was hab ich übersehen?

    // Destructor der Splitview
    Splitview::~Splitview()
    {
    	m_parent->RemoveChild(m_splitter);
    	delete m_splitter;
    }
    
    // Destructor der Notebook-View
    Notebookview::~Notebookview()
    {	
    	m_parent->RemoveChild(m_notebook);
    	delete m_notebook;
    }
    
    // Wechselfunktion des Mainframes:
    void Mainframe::ChangeView( const wxString& view )
    {
    	delete m_viewbase;
    
    	// Choose View depending on Value
    	if ( view == wxT("Splitview"))
    	{
    		m_viewbase = new Splitview(this);
    	}
    	else if ( view == wxT("Notebookview"))
    	{
    		m_viewbase = new Notebookview(this);
    	}
    	m_viewbase->LoadHtmlPage(m_currentPage);
    
    	this->Refresh(true);
    }
    

    Hoffe jemand kann mir hier helfen :).
    Achja, NotebookView und SplitView sind beide abgeleitet von IViewbase (selber definiert)
    rya.



  • Habs gelöst durch hinzufügen dieses Codes:

    wxSizeEvent e;
    	e.SetEventObject(this);
    	AddPendingEvent(e);
    

    rya.



  • Das hört sich aber nach einem Bug in wxWidgets an, denn das Aktualisieren sollte schon funktionieren, ohne manuell einzugreifen. Gibts da schon nen Report? Falls nein -> melden 😉



  • troll hier nich rum



  • _trolldich schrieb:

    troll hier nich rum

    Und was soll das? Der Code ist logisch fehlerfrei, es müsste funktionieren. Ein korrektes Update funktioniert aber nicht automatisch, man muss selber noch ein Event hinterherschieben. Das sollte die Bibliothek erledigen. Hört sich für mich nach Problem an, wenns kein Bug ist dann ein fehlendes Feature, für beides könnte man also den wx-Bugzilla (oder was die verwenden) konsultieren. Ich sehe also nicht wo ich trolle.
    Also troll dich, _trolldich.

    @Scorcher:
    Welche wx-Version ist das? Laut Doku gibt es für wxSizeEvent keinen default-Konstruktor, den du aber jetzt zu verwenden scheinst.



  • l'abra d'or schrieb:

    _trolldich schrieb:

    troll hier nich rum

    Und was soll das? Der Code ist logisch fehlerfrei, es müsste funktionieren. Ein korrektes Update funktioniert aber nicht automatisch, man muss selber noch ein Event hinterherschieben. Das sollte die Bibliothek erledigen. Hört sich für mich nach Problem an, wenns kein Bug ist dann ein fehlendes Feature, für beides könnte man also den wx-Bugzilla (oder was die verwenden) konsultieren. Ich sehe also nicht wo ich trolle.
    Also troll dich, _trolldich.

    @Scorcher:
    Welche wx-Version ist das? Laut Doku gibt es für wxSizeEvent keinen default-Konstruktor, den du aber jetzt zu verwenden scheinst.

    Das ist 2.9.0, das beinhaltet schon viele Änderungen für 3.0. Hast aber Recht, in meiner Doku ist der auch nicht drin :D. Funktioniert aber :p.
    rya.

    ps.: Spring doch immer so auf die unreg trolle an.. tsts. Leg Dir mal nen Fell zu hehe.


Log in to reply