Hvis kode udsnittet er uklart vil en god for klaring til hvordan man dynamisk fylder data i en CListCtrl (elementer, søjler, rækker ...) være velkommen! Jeg har dit eksempel (fra http://www.eksperten.dk/spm/239764) der virker, men kan ikke lige få det konverteret til egen kode :-/ (Jeg har ikke helt gennemskuet hvad der sættes ind hvor og hvordan jeg sætter mit eget i stedet)
Jo da :o) ... m_strListStatus.InsertColumn(0, "Line", LVCFMT_LEFT, 50); m_strListStatus.InsertColumn(1, "Position", LVCFMT_LEFT, 50); m_strListStatus.InsertColumn(2, "Text", LVCFMT_LEFT, 400); ... if (!result.empty()) { for (int i = 0; i<result.size(); i++) { if (result.at(i).bValid) { m_strListStatus.InsertItem(nCount,"TEST"); m_strListStatus.SetItemText(nCount, 0, CString(result.at(i).nLine)); m_strListStatus.SetItemText(nCount, 1, CString(result.at(i).nPos)); m_strListStatus.SetItemText(nCount, 2, result.at(i).strText); nCount++;
} } }
result er en vector, nCount bruges til at holder styr på hvor langt jeg er nået i listen (der kommer flere resultater og de tidligere skal ikke overskrives, med mindre brugeren specificerer det)
Efter navnene at dømme, er dine variabler nLine og nPos af typen int? Hvis dette er tilfælde kunne fejlen ligge her, CString har ikke en constructor der tager en int...
Prøv at erstatte koden med understående og se om det virker:
if (!result.empty()) { for (int i = 0; i<result.size(); i++) { if (result.at(i).bValid) { m_strListStatus.InsertItem(nCount,"TEST"); m_strListStatus.SetItemText(nCount, 0, "nLine"); m_strListStatus.SetItemText(nCount, 1, "nPos"); m_strListStatus.SetItemText(nCount, 2, "strText"); nCount++;
Det gør det ikke, jeg har allerede lavet en test af det (mht. nPos og nLine så er de int, men jeg skal bare have konverteret dem til noget "tekst", det er ikke det der volder problemer lige nu :o) ).
Jeg tænkte om det var InsertItem der havde et problem, men MS' dokumentation er ikke så god på dette punkt.
I got it! Der var nogle problemer med overførslen af data til løkken (de blev af en eller anden grund overskrevet til en tom vector lige inden denne løkke). Jeg har også fundet ud af hvordan tildelingen af felter foregår.
jpk >> hvis du vil have point kan du lige sige til, så laver jeg et spørgsmål til dig :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.