wx: SizeGrip?



  • Hallo,
    habe zwei Fragen zu wxWidgets:

    1. Weiss jemand, ob es in wxWidgets einen SizeGrip gibt? Damit meine ich so ein dreieckiges Ding in der unteren, rechten Ecke eines Fensters um die Grösse zu ändern.
    2. Ich benutze "wxRESIZE_BORDER" als Windowstyle für einen Dialog um dem User zu ermöglichen, die Grösse des Fensters zu ändern. Gibt es eine Möglichkeit, das die Grösse des Fensters nur vertikal änderbar ist ?

    Gruss,
    Micha


  • Mod

    1. afaik nein. (Ist aber sicher zu implementieren)
    2. keine Ahnung, ob das einstellbar ist, umsetzbar ist es auf jedenfall. Notfalls müsste man halt selber onSize überschreiben oder so.


    1. Schade, selber machen ist mir momentan zu anstrengend
    2. Habe ich so gemacht und funktioniert. Man muss nur beachten, dass SetSize() ja wieder ein SizeEvent auslöst.
    void DefoManagerDialog::OnSize(wxSizeEvent &event){
        wxSize s(event.GetSize());
        if (s.GetWidth() != MYWIDTH) SetSize(MYWIDTH,s.GetHeight());
    }
    

    Vielen Dank



  • Den "SizeGrip" erhälst du, wenn du deinem Fenster eine Statusbar spendierst.



  • Ja, cool. Jetzt habe ich aber das Problem, dass die Statusbar beim Ändern der Fenstergrösse nicht mehr am unteren Rand des Fensters sitzt. Nach dem Erzeugen des Fensters scheint sie sich ja selbständig am unteren Rand zu positionieren, nach manueller Fenstergrössenänderung nicht mehr. Was muss ich tun?



  • Hmmm, ist mir noch nie passiert. Ich setzte die Statusbar einfach per wxFrame::SetStatusBar() und fertig. Das Frame-Window kümmert sich um alles weitere.



  • Hat wohl damit zu tun, dass ich es für einen Dialog brauche. wxDialog kennt SetStatusBar() nicht, erzeuge sie daher mit "new". Komischerweise sitzt sie dann, ohne Angabe von Position und Grösse(was auch im Ctor nicht vorgesehen ist) an der richtigen Stelle, solange bis die Grösse des Dialogs geändert wird. Muss sie dann wohl doch selbst an die richtige Stelle setzen.


  • Mod

    Dann wirst du den Statusbar wahrscheinlich bei der OnSize updaten müssen.



  • Ja, so habe ich das jetzt gemacht.
    Heisst das "der Statusbar" oder "die Statusbar". Ich benutze bisher eigentlich immer "die ..."



  • Aus lautmalerischen gründen die.
    Etwas was sächlichem Geschlecht ist und auf ar endet kenne ich jetzt nicht wirklich.

    das Mär -> är != ar


Anmelden zum Antworten