Listbox Ansicht tabellarisch?



  • Hallo zusammen,

    ich möchte in einer Listbox Adressen darstellen lassen.
    Pro Zeile eine Adresse mit Namen, Vornamen, Ort, Land.

    Das Problem ist nur wenn ich die Strings mit "\t" schön tabellarisch darstellen möchte, gibt es einige Adressen die leicht verschoben sind, da z.B. der Vorname zu kurz ist oder der Ort fehlt und so...
    Wie kann ich erreichen, dass es die Adressen schön darstellt?Sozusagen eine fixe Breite angeben oder so?

    danke.

    mfg olimination.com



  • CListCtrl nehmen.



  • Nimm den Report modus, da kannst du einzelne Spalten hinzufügen.

    DU erzeugst einen Handel auf dein CListCtrl (mache am besten ne membervariable vom Typ Control)

    z.B.:

    CListCtrl *pListCtrl = (CListCtrl*) GetDlgItem(IDC_DEIN HANDEL DES LISTCTRL);// Hier erstmal der Zeiger auf das ListCtrl
    pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP); //Das hier sind Styles die das erscheinungsbild deines ListCtrl verändern. Das erste ist das er Linien malt. (Wie bei Excel) das zweite bedeutet das du die ganze Zeile Makierst, und das dritte bedeutet das du falls der text zu lang istr für die Zeile er wenn du mit Maus drüber bist nen ToolTip macht und den text anzeigt.
    Must das net mit reinnehmen aber ist ganz nützlich. Must du selber wissen
    pListCtrl->InsertColumn(0,"Name",LVCFMT_LEFT,200,0); //Hier erzeugst du das erste Feld. LVCFMT_LEFT bedeutet das der Text linksbündig angezeigt wird. Giebet noch andere parameter. Siehe Hilfe. Da wird auch der Befehl genauer erklärt.
    pListCtrl->InsertColumn(1,"Vorname",LVCFMT_LEFT,200,1); //Hier die zweite usw....
    pListCtrl->InsertColumn(2,"Ort",LVCFMT_LEFT,200,2);
    

    ja das wars schon, dann must du nur noch Text einfügen in die einzelnen spalten. Das geht dann so:

    pListCtrl->InsertItem(0,m_pSet->m_AusgabenText,-1);//damit fügst du in die erste splate text ein
    pListCtrl->SetItemText(0,1,betrag);//damit dann in die spalte in die du willst. 0,1 bedeutet eben beim bsp von oben in die spalte Name. must dann nur die hintere Zahl erhöhen um eine Spalte weiterzukommen.
    

    Hoffe das hilft dir ein weng, bei mir funzt das so. Ohne probs.



  • ...oder du nimmst ein alternatives ActiveX-Steuerelement das das unterstützt



  • danke für die Tipps.
    @xyz44:
    Ich habe nun die Code Zeilen fürs CListCtrl in die View-Class eingefügt.
    Aber wenn ich die Anwendung starte, sieht die ListBox noch immer gleich aus...ohne Spalten und so...
    Muss ich noch was Spezielles aktivieren/einfügen damit es eine Wirkung hat?



  • Du solltest das in den Eigenschafen ändern.
    Dialogeditor -> ListCtrl -> Ansicht, ich glaub es ist Bericht...

    Devil



  • ah...ich benutze das Listbox Control und dieses hat diese Eigenschaft gar nicht. Muss ich denn das Listenelement Control nehmen?



  • Immer das gleiche mit dem englischen. 😉

    Wir sprachen gerade von einem ListCtrl.
    Eine Listbox hat keine Columns.


Anmelden zum Antworten