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:
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)));
}
}
Input è una stringa che devo dividere in sottostringhe a ogni spazio e caricare suddette sottostringhe nella list control presente sulla dialog.
Row è una variabile globale di ClMakeList
ObjIISDlg è un puntatore alla dialog
ora inserisco il codice relativo all'inizializzazione che faccio del list control:
codice:
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);
il problema che mi esce fuori è che mi scrive sono nella prima colonna
a meno che io non inserisca la seguente linea di codice dopo l'inizializzazione:
codice:
m_lstLog.InsertItem(0," ");
capite però che il programma non è pulito e comunque è un problema che è meglio risolvere ora prima che salti fuori in seguito..
aiuto....