Wie einem Listenfeld eine Zeile hinzufügen



  • Ganz einfache Frage: Ich habe mit dem Dialog Editor eine ListBox auf meinen Dialog gesetzt. Wie kann ich das ansprechen? Unter Delphi hätte ich ein Form1.ListBox1.Add.Lines aufgerufen, aber hier unter C++ findet er IDC_List1 nicht. Wer ist denn da der Parent, oder wie bekomme ich die ListBox?


  • Administrator

    Also am einfachsten geht es wohl so:
    Du selektierst deine ListBox und weist ihr unter Eigenschaften eine sinnvolle ID zu. Dann machst du einen rechtsklick auf der selktierten ListBox und wählst Variable Hinzufügen (oder sowas). Dort kannst dann eine Controlvariable erstellen, vom Typ CListBox. Diese Variable wird deiner Dialogklasse hinzugefügt. Sagen wir die heisst dann m_ctrlListBoxListEins.
    Dann kannst du mit m_ctrlListBoxListEins.AddString(LPCSTR string) einen Eintrag hinzufügen. Siehe dazu auch in der MSDN CListBox.

    Voraussetzung ist natürlich du hast schon eine Dialogklasse gemacht. Diese erstellt du indem du an einer leeren Stelle auf dein Dialogfenster doppelklickst. Dann kommt ein Dialog der dir Hilft die Dialogklasse zu erstellen.

    Am besten wäre wohl du machst dazu ein Tutorial durch. Aber hab grad keins zur Hand. Mal im Google suchen.

    Grüssli



  • Prima, danke! Musste nur eine Member-Variable hinzufügen und statt "value" "control" auswählen und dann stand da schon CListBox. War ja einfach 🙂



  • Hmmmmm nur wie schalte ich es nun ab, dass er mir automatisch die Listenelemente sortiert?



  • im Dialogeditor mit der rechten Maustaste auf die Listbox klicken. Eigenschaften->Sortiern auf False setzen (Je nach Version auch haken entfernen(VC6.0))

    Gruß



  • Will kein extra Thread dafür aufmachen, ist ja auch schnell beantwortet: Ich will nun auch einem Static-Text einen String geben. Habe bereits die Member-Variable m_Label1 angelegt und möchte einen Text angeben mit m_Label1="test", aber es erscheint nichts auf dem Dialog.


  • Administrator

    musst noch

    UpdateData(FALSE);
    

    aufrufen.
    Das ladet die Daten aus den Membervariablen hoch. Mit

    UpdateData(TRUE)
    

    speicherst die Daten aus dem Dialog in die Membervariablen.

    Siehe dazu auch "CDialog Class" oder "Dialog Data Exchange" in der MSDN.
    Grüssli



  • Ah ok, ja sowas hatte mein Prof gestern auch gesagt 😉 *sichnotier* Was man alles wissen muss 😉


Anmelden zum Antworten