j'ai essayer de faire un recherche dans une liste mais malheureusement il s'arrete a la premiere occurence trouver, alors que je voudrais faire un rechercher le suivant. Donc j'ai fait ce petit bout de code mais malheureusement il saute des reponses.Et je n'arrive pas a comprendre pourquoi surtout que la variable qui devrait contenir la place de l'occurence me donne de drole d'info comme 21 pour la premiere item.
CString s_pattern;
m_e_host.GetWindowText( s_pattern );
s_pattern.MakeLower();
for(int j=0; j<m_list.GetItemCount();j++ )
{
if (m_list.GetItemState (j, LVIS_SELECTED)==LVIS_SELECTED)
m_list.SetItemState (j,0, LVIS_SELECTED);
CString s,s1,s2;
s1 = m_list.GetItemText( j, 0 );//ip
s2 = m_list.GetItemText( j, 1 );//comments
s.Format("%s#%s",s1,s2);
s.MakeLower();
if ( s.Find(s_pattern,iStart)!=-1 )
{
m_list.EnsureVisible( j, false );
m_list.SetItemState( j, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED );
m_list.SetFocus();
int n = s.Find ( s_pattern, iStart );
iStart = ++n;
char buf[10];//récepteur assez large
sprintf(buf, "%d", (iStart));//et buf contient le texte
printf("%s\n",buf);
m_status_line.SetWindowText(buf);
return;
}