Listbox mit Spalten



  • Hi,
    ich habe eine Listbox u.a. mit dem Stil LBS_MULTICOLUMN erzeugt. Nun versuche ich (bisher leider vergebens), mit diversen Funktionen irgendwie Einfluss auf das Aussehen dieser Spalten zu erhalten (ich will wenigstens irgendwie einen Text darüber stehen haben und die Breite ändern).
    Zum einen habe ich versucht, mit

    ::SendMessage(listbox, LVM_SETCOLUMNWIDTH, 1000, 0); //listbox ist valid
    

    die Breite zu ändern - Fehlanzeige, es passiert einfach nichts.
    Auch Versuche, erst eine Spalte einzufügen brachten keinen Erfolg:

    LVCOLUMN lvcol;
    lvcol.cx = 1000;
    lvcol.fmt = LVCFMT_CENTER;
    lvcol.mask = LVCF_WIDTH | LVCF_FMT;
    ::SendMessage(listbox, LVM_INSERTCOLUMN, 0, reinterpret_cast<LPARAM>(&lvcol)); // es wird NICHT -1 zurueckgeliefert
    

    Ich habe zuvor InitCommonControlsEx sowohl mit ICC_LISTVIEW_CLASSES als auch mit ICC_STANDARD_CLASSES aufgerufen. GetLastError sagt 1410 (Class already exists.), allerdings direkt hinter den Aufrufen von InitCommonControlsEx, danach (bei dem eigentliche Code) kommt kein Fehler...
    Was kann ich noch tun? Sieht jemand einen Fehler? 😕

    Gruss,
    DeSoVoDaMu



  • Die LVM_-Nachrichten (wie alles, was mit LV anfängt) sind für das List Control. Eine Listbox kann damit nichts anfangen.



  • Das habe ich schon irgendwie vermutet...stellt sich mir zwar immer noch die Frage, warum ersteres nicht geht, aber gut. 😞
    Kannst Du mir auch noch verraten, wie ich solch ein ListView in einem Ressourcen- Script erstelle? LISTVIEW (anstelle von LISTBOX) geht nicht, nicht definiert.
    Vielen Dank.

    Gruss,
    DeSoVoDaMu



  • DeSoVoDaMu schrieb:

    stellt sich mir zwar immer noch die Frage, warum ersteres nicht geht, aber gut. 😞

    Wie soll das gehen? Was passiert, wenn du einem Textfeld eine Button-Nachricht schickst?

    Kannst Du mir auch noch verraten, wie ich solch ein ListView in einem Ressourcen- Script erstelle? LISTVIEW (anstelle von LISTBOX) geht nicht, nicht definiert.

    Mit CONTROL und "SysListView32" als Klassenname.



  • Ich habe gedacht, ich habe LB_SETCOLUMNWIDTH geschrieben, sry. Habe mich da wohl verschrieben.

    Mit CONTROL und "SysListView32" als Klassenname.

    Danke. Was hat eigentlich der erste Paramter zu sagen, in folgendem Text (das bringt mir Visual C++ 6.0 im Resourcen-Script):

    CONTROL			"List2"/*das ding hier*/, IDC_LST_URLS, "SysListView32",WS_BORDER | WS_TABSTOP,
                        7, 20, 486, 386
    


  • DeSoVoDaMu schrieb:

    Was hat eigentlich der erste Paramter zu sagen,

    Das ist der Text für das Steuerelement, bei einem List Control natürlich mehr oder weniger sinnlos.

    http://msdn.microsoft.com/library/en-us/tools/tools/common_control_parameters.asp



  • OK, vielen Dank, hast mir sehr geholfen. Nur schade, dass ich jetzt alles in Richtung Listen-Element neu machen muss -.-

    Gruss,
    DeSoVoDaMu


Anmelden zum Antworten