Editbox Eingabe in Variable -> zur ListBox adden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Editbox Eingabe in Variable -> zur ListBox adden

    Hallo,

    Ich habe vor einiger Zeit mit c++ angefangen und mich erstmal rangetastet(meist mit zahlen uns Rechungsprogrammen).

    Ich wollte mal eine MFC Anwendung schreiben in der ich in einer EditBox z.B. "Start" eingebe. Jetzt klicke ich auf den Button Add und "Start" wird somit zu einer Listbox hinzugefügt.

    Kann mir da mal wer ne leichte Variante zeigen oder mal nen link geben? habe schon überall mal gesucht aber leider nie was guten / richtiges gefunden.

    Danke im voraus.
  • MFC Text aus Textfeld in eine Listbox schreiben

    Methode (hier OnButton1) hinzufügen.

    Quellcode

    1. // Header
    2. afx_msg void OnButton1();
    3. // Source
    4. void CTestDlgDlg::OnButton1()
    5. {
    6. // Eingabefeld
    7. CEdit* pEdit = (CEdit*) GetDlgItem( IDC_EDIT1 );
    8. // Text auslesen
    9. CString sText = "";
    10. pEdit->GetWindowText( sText );
    11. // Text in die Listbox schreiben.
    12. CListBox* pList = (CListBox*) GetDlgItem( IDC_LIST1 );
    13. pList->AddString( sText );
    14. }
    Alles anzeigen
  • Hi,
    nur für alle die es interessiert:
    Diese Zeile:

    Quellcode

    1. CEdit* pEdit = (CEdit*) GetDlgItem( IDC_EDIT1 );

    ist technisch falsch und wenn man anstelle eines C-Style Casts nen dynamic_cast nimmt wird dieser Null zurück geben.
    Ich bin mir bewusst dass man diesen Code selbst in der MSDN findet aber es bleibt dabei,was GetDlgItem liefert ist nen Zeiger auf nen temporäres Objekt vom Typ CTempWnd.Ausnahme ist, wenn man das Control explizit selber über Create erstellt hat.

    Ausführlich ist das Ganze hier nachzulesen:
    microsoft.com/msj/0997/c0997.aspx
    mindfiresolutions.com/download…20Temporary%20Objects.pdf

    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)
  • Hallo void,

    wir wollen mal nicht mit Kanonen auf Spatzen schießen.
    Dein Einwand ist zwar richtig, aber für jemanden der gerade anfängt
    ist der Code erst mal ausreichend um ein Erfolgserlebnis zu haben.
    In Büchern und in der MSDN steht das auch so drin. Wer später dann
    mal tiefer in die MFC einsteigt, der macht das dann auch anders.

    Es steht ja extra drin, es sollte eine leichte einfache Variante gezeigt werden.

    Deine Links sind trotzdem gut und für die, die sich weiter mit dem Thema
    auseinandersetzen wollen.