io ho la mia dialog CLogIISDlg con un controllo list control e la sua relativa variabile gestore [b]m_lstLog[b]
in una classe utente ClMakeList all'interno di un altro file ho il metodo PutSingleRow publico che ha sua volta richiama il metodo privato Detach .
vi inserisco il codice relativo a quest'ultimo:
Input è una stringa che devo dividere in sottostringhe a ogni spazio e caricare suddette sottostringhe nella list control presente sulla dialog.codice:void ClMakeList::Detach (CString Input, CLogIISDlg * ObjIISDlg){ int tmppos=0; int oldpos=0; tmppos=Input.Find(" "); ObjIISDlg->m_lstLog.InsertItem(Row,Input.Mid(0,tmppos)); for (int i=1;i<=11; i++){ oldpos=tmppos; tmppos++; tmppos=Input.Find(" ",tmppos); ObjIISDlg->m_lstLog.SetItemText(Row,i,Input.Mid(oldpos,(tmppos-oldpos))); } }
Row è una variabile globale di ClMakeList
ObjIISDlg è un puntatore alla dialog
ora inserisco il codice relativo all'inizializzazione che faccio del list control:
il problema che mi esce fuori è che mi scrive sono nella prima colonnacodice:m_lstLog.DeleteAllItems(); m_lstLog.InsertColumn(0,"data",LVCFMT_LEFT,70,0); m_lstLog.InsertColumn(1,"time",LVCFMT_LEFT,70,0); m_lstLog.InsertColumn(2,"c-ip",LVCFMT_LEFT,100,0); m_lstLog.InsertColumn(3,"cs-username",LVCFMT_LEFT,50,0); m_lstLog.InsertColumn(4,"s-ip",LVCFMT_LEFT,100,0); m_lstLog.InsertColumn(5,"s-port",LVCFMT_LEFT,50,0); m_lstLog.InsertColumn(6,"cs-method",LVCFMT_LEFT,50,0); m_lstLog.InsertColumn(7,"cs-uri-stem",LVCFMT_LEFT,100,0); m_lstLog.InsertColumn(8,"cs-uri-query",LVCFMT_LEFT,100,0); m_lstLog.InsertColumn(9,"sc-status",LVCFMT_LEFT,100,0); m_lstLog.InsertColumn(10,"cs(User-Agent)",LVCFMT_LEFT,100,0);
a meno che io non inserisca la seguente linea di codice dopo l'inizializzazione:
capite però che il programma non è pulito e comunque è un problema che è meglio risolvere ora prima che salti fuori in seguito..codice:m_lstLog.InsertItem(0," ");
aiuto....![]()
![]()
![]()



Rispondi quotando