In Formview Slider initialisieren



  • Guten Tag Allerseits,

    ich möchte gerne meinen Slider(Visual Studio 2008) mit einer Range(-15->+5) und einem Wert(-8) initialisieren.

    In einer Buttonfunktion bekomme ich das so hin:
    m_slider.SetRange(-13,5,1);
    m_slider.SetPos(-8);

    Nun möchte ich aber, das gleich beim laden dieser Formview der Slider initialisiert wird.

    Nebenbei: Da ich im Konstruktor keine Sachen initialisieren darf, weil die GUI-Elemente vermutlich noch nicht existieren, kann man sowas wie die OnInitDialog() in einer Formview realisieren?

    Vielen Dank im Voraus.
    Gruß Carsten



  • Initialisierungen von Controls, etc. werden in OnInitialUpdate() vorgenommen.

    Wenn du hier eine Frage stellst, dann lies dir doch bitte die Antworten durch.

    Die Initialisierung von Controls bei CFormView macht man WIMRE in der Regel in OnInitialUpdate().



  • Die Initialierung funktioniert jetzt. Leider popt nach dem Formview aufruf/wechsel leider ein Popup auf mit der Meldung "Enter an integer". Das bezieht sich auf das Editfeld. Er zeigt aber dann die initialisierte 9 im Editfeld an. Wieso erscheint diese Meldung?

    void CScanObjectView::OnInitialUpdate()
    {
    CView::OnInitialUpdate();

    UpdateData(true);
    m_editfeld_value = (int)9;
    UpdateData(false);

    // Init. other thinks
    // ...
    }

    Wegen dem neuen Thread:
    Ich hatte nicht gedacht das jemand noch bei meiner anderen Frage antwortet, da ich gesagt hatte dass das Problem behoben wurde.



  • Ich durfte UpdateData(true) nicht aufrufen. Jetzt funktioniert es.

    void CScanObjectView::OnInitialUpdate()
    {
    CView::OnInitialUpdate();
    UpdateData(false); // Übernimmt den im Konstruktor gesetzten Wert 👍



  • Wozu soll überhaupt das UpdateData(true) gut sein?? Kannst du getrost vergessen wenn du den Wert eh gleich wieder änderst.
    Wenn du eine Editbox samt zugehöriger Werte-Variable bereits erstellt hast würde ich die Werte-Variable im Konstruktor initialisieren:

    , m_editfeld_value(9)
    

    Wenn du hingegen den Control an sich initialisieren willst (z.B. EnableWindow()), dann gehört das in OnInitialUpdate().



  • Hast recht Flockig. Danke dir


Anmelden zum Antworten