Eintragen in Listviews Ändern von Listviews



  • Ich habe mit dem Resourcen Editor folgenden Abschnitt im .rc erzeugt

    IDD_DIALOG2 DIALOG DISCARDABLE  0, 0, 274, 314
    STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "Dialog"
    FONT 8, "MS Sans Serif"
    BEGIN
        DEFPUSHBUTTON   "OK",IDOK,222,298,50,14
        GROUPBOX        "History",IDC_STATIC,2,145,270,148
        PUSHBUTTON      "Select History File",IDC_BUTTON1,2,2,270,14
        CONTROL         "List2",IDC_LIST2,"SysListView32",WS_BORDER | WS_TABSTOP,
                        157,179,60,50
    END
    

    Wie kann ich darauf aus einer Dialogfunktion zugreifen?
    Der Aufruf

    HWND hListView;
    hListView = GetDlgItem(hDlg, IDC_LIST2);

    ergibt bei GetLastError: Kennung des Steuerelements nicht gefunden

    Eintragen mit

    LV_ITEM item;
    char szBuffer2[NORMSTRINGLEN]={"TEST"};

    item.pszText=szBuffer2;
    item.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
    item.state =LVIS_FOCUSED|LVIS_SELECTED;
    item.iSubItem = 0;
    item.iImage = 1;
    ListView_InsertItem(hListView,&item);
    ListView_SetItemText(hListView,item.iItem,2,szBuffer2);

    ergibt keinerlei Ausgabe
    😕

    🙂 PS: wir kann ich die Anzahl der Spalten definieren um in der ersten Spalte
    Bilder und in der zweiten Spalte Texte darzustellen 😕



  • Hmm deine .rc datei scheint in ordnung zu sein.. aba in dialogen hab ich noch nie nen listview genutzt ;)... hast du InitCommonControls aufgerufen?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/listview_overview.asp

    To create a list-view control, call the CreateWindow or CreateWindowEx function and specify the WC_LISTVIEW window class. This window class is registered when the common controls dynamic-link library (DLL) loads. To ensure that this DLL loads, use the InitCommonControls or InitCommonControlsEx function. Because list-view controls display both icons and text, as part of the creation process you must load the bitmaps and insert the text items.

    so wie ich das verstehe wird die window class für das listview-control erst nach dem laden dieser dll erstellt ^^.

    cya 🙂



  • Leider hatte ich InitCommonControls aufgerufen und es funktioniert trotzdem nicht.



  • Ist wohl nur eine blöde Idee, aber evtl. klappt es mit InitCommonControlsEx 🙄


Anmelden zum Antworten