ComboBox Werte auslesen schlägt fehl



  • Die Stelle heißt DoModal. 😃

    DoModal ruft den Dialog modal auf, das heißt, der Rest des Programmes STEHT solange der offen ist.
    Es passiert also folgendes:

    dlg.DoModal();
    

    Dialog geht auf, Restprogramm wartet, irgendwann machst du den Dialog wieder zu.

    m_combo.GetCurSel();
    

    Den Dialog hast du eben zugemacht...



  • yul97 schrieb:

    -ComboBox mit der Toolbox auf den Dialog IDD_TEST gezogen.
    ...
    -eine Objektvariable in CTestDoc namens m_combo vom Typ CComboBox erzeugt.

    Wie soll der Compiler diese Variable mit dem Steuerelement auf der Dialogressource verknüpfen? Magie?



  • Ich habs gewußt.

    Von alleine wäre ich da nie draufgekommen. Da braucht man halt Profis.

    Jetzt gibts nur noch eine kleine Schwierigkeit. Mit welchem Befehl zeige ich den Dialog so an, dass das Restprogramm nicht wartet.

    Durch Probieren der verschiedenen Methoden in CDialog könnte ich es selber herausfinden (ziemlich mühlselige Sache).

    Wo finde ich eigentlich eine vernünftige Dokumentation, in der die Methoden von z.B. CDialog gut beschrieben sind ?



  • MFK schrieb:

    yul97 schrieb:

    -ComboBox mit der Toolbox auf den Dialog IDD_TEST gezogen.
    ...
    -eine Objektvariable in CTestDoc namens m_combo vom Typ CComboBox erzeugt.

    Wie soll der Compiler diese Variable mit dem Steuerelement auf der Dialogressource verknüpfen? Magie?

    Ups, da hast du Recht. Das kommt noch dazu. (Aber die Variable in den Dialog packen und dann vom Doc aus setzen klappt nicht - s.o.)



  • Hallo,
    ich denke das dass mit dem Modallosem Dialog gehen sollte!
    Den must du dann mit Create() erstellen!

    ich denks halt 🙂

    mfg
    pixel



  • Oder eine int-Variable im Dialog für die Combobox erstellen und die hinterher vom Doc aus auslesen.



  • Danke estartu und die anderen,

    das mit der int-Variable funktioniert.

    Interessieren würde mich aber trotzdem noch die Lösung mit Create(). Da hab ich aber glaube ich heute keinen Nerv mehr dafür. Die Parameter von Create() sehen kompliziert aus.

    Wenigstens kann ich jetzt weitermachen.

    Danke nochmal.



  • Gibt es eigentlich wirklich keine Doku über die MFC-Klassen ?



  • Sicher gibt's die. Die gesamten MFC sind in der MSDN Library dokumentiert.



  • Und die findest du da: http://msdn.microsoft.com/ 🙂



  • Danke für die Tipps,

    ich habe jetzt die Ursache für das Problem herausgefunden.

    Da bin ich aber auch nur draufgekommen, weil ich wie empfohlen in der Microsoft MFC-Doku nachgeschaut habe.

    Dort wird beschrieben, dass die Zuordnung einer Variablen zu einer ComboBox in einer sogenannten MessageMap erfolgt.
    Die MessageMap wird bei mir in der Fct. DoDataExchange() definiert. (Bei mir DDX_CBString(pDX,IDC_COMBOStation,m_strCombo))

    Der Variablen-Assistent hat diese Zuordnung einfach nicht gemacht, weil ich nachträglich die ComboBox zum Dialogfeld eingefügt habe.

    Always little things, sind die Ursache für einen Riesenaufwand, stimmts.:)


Anmelden zum Antworten