listbox frage, auswahl speichern



  • hallo,

    ich habe eine listbox und möchte makierte elemente auslesen.

    so sieht es im moment aus:

    m_lb_res.GetText(m_lb_res.GetCurSel(), res);

    ich hatte es auch schonmal so das ich mehrere elemente makieren konnte und alle makierten ausgelesen wurden.

    habe leider den entsprechenden code vergessen.

    evtl kann mir jemand auf die sprünge helfen.

    vielen dank !!



  • so sieht das ganz stück aus:

    int i_zeile_res;
        int resolution;
    
        CString res; 
    
        i_zeile_res = m_lb_res.GetCurSel();
    
        if(i_zeile_res >= 0)
        {
          m_lb_res.GetText(m_lb_res.GetCurSel(), res);
    
          resolution = atoi(res); 
        }
        else
        {
         MessageBox("Es wurde keine Auflösung ausgewählt!");
        }
    


  • Was Du suchst ist

    int GetSelItems( int nMaxItems, LPINT rgIndex )

    Gruß



  • ich kriege es nicht hin. hat jemand einen tipp fuer mich ??

    int list = 20;
    
            // Multi selections
            int count = m_lb_speed[list].GetSelCount();
            CArray< int,int > arrayListSel;
            arrayListSel.SetSize(count);     // make room in array
            m_lb_speed[list].GetSelItems(count,arrayListSel.GetData());    // copy data to array
            CString str = _T("");
            for( int i=0; i< count; i++ )
            {
                CString tmp = _T("");
                m_lb_speed[list].GetText( arrayListSel[i], tmp );
                str += (tmp + _T(", "));
            }
    

    Fehlermedlungen:

    :\dokumente enterdlg.cpp(409) : error C2039: 'GetSelCount' : Ist kein Element von 'HWND__'
    c:\programme\microsoft visual studio\vc98\include\windef.h(195) : Siehe Deklaration von 'HWND__'
    c:\d_centerdlg.cpp(410) : error C2065: 'CArray' : nichtdeklarierter Bezeichner
    c:\dokumecpp(410) : error C2062: 'int'-Typ unerwartet
    c:\dokumente und einstellungen\heidenreich.krause_de\desktop\s.ludwig\dds_center\dds_centerdlg.cpp(411) : error C2065: 'arrayListSel' : nichtdeklarierter Bezeichner
    c:\dokumenterdlg.cpp(411) : error C2228: Der linke Teil von '.SetSize' muss eine Klasse/Struktur/Union sein
    c:\dokumendlg.cpp(412) : error C2039: 'GetSelItems' : Ist kein Element von 'HWND__'
    c:\programme\microsoft visual studio\vc98\include\windef.h(195) : Siehe Deklaration von 'HWND__'
    c:\dokuterdlg.cpp(412) : error C2228: Der linke Teil von '.GetData' muss eine Klasse/Struktur/Union sein
    c:\dokumenterdlg.cpp(417) : error C2039: 'GetText' : Ist kein Element von 'HWND__'
    c:\programme\microsoft visual studio\vc98\include\windef.h(195) : Siehe Deklaration von 'HWND__'
    c:\dokumedds_centerdlg.cpp(417) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp

    ALternativ habe ich das auch mal probiert. was aber auch nicht funktioniert:

    char prompt[400];
        char temp[20];
        int	items[20];
    
      int count = m_lb_speed.GetSelCount();
    
        m_lb_speed.GetSelItems(20, items);
    
        strcpy(prompt,"");
    
        for(int i=0; i< count; i++)
        {
    	  sprintf(temp,"%d|", items[i]);
      	strcpy(prompt,temp);
    	  if(i%10==0)
    	    strcat(prompt,"\n");
        }
    
        MessageBox(prompt);
    

    keine fehlermeldung , aber es geht nicht.



  • habe jetzt erstmal das gfefunden

    // lstMitarbeiter ist die Listbox
        int nCount = m_lstMitarbeiter.GetSelCount();
        if (nCount > 0) // Ist etwas ausgewählt?
        {
            // Die Indizes holen
            CArray<int,int> arrSel;
            arrSel.SetSize(nCount);
            m_lstMitarbeiter.GetSelItems(nCount, arrSel.GetData());
    
            for (int i = 0; i < arrSel.GetSize(); i++)
            {
                // nun kannst du mit jedem gewählten Eintrag was machen
            }
        }
    

    aber bekomme immer die fehlermedlung:;

    :\dokumente und einstellun...dds_centerdlg.cpp(386) : error C2065: 'CArray' : nichtdeklarierter Bezeichner



  • #include <afxtempl.h>
    dann kennt er auch CArray (glaub ich)



  • cool, danke dir das hat mich schon wieder nen stück weiter gebracht.

    THX


Anmelden zum Antworten