Gibts irgendwo ein Deutsches Tut über eine Suchfunktion in einem Listenfeld, wo ein..
-
...Text drin steht???
mfg
SF
-
Wies der Titel schon sagt.... mein ich.... öhö.... ich cha schnäll tesche...
ups da ghört ned do he... scheisse!!!
-
Hi,
ich weiss zwar ehrlich gesagt nicht, ob dies genau das ist was du suchst, aber folgender Code ermoeglicht dir die Suche in einem Listenfeld analog zur Suche, wie man sie in .chm Hilfen z.B. findet. Das heisst, der User gibt einen Buchstaben ein und das entsprechende Feld mit dem gleichen Anfangsbuchstaben wird selektiert. Beim zweiten Buchstaben rutscht die Auswahl dann weiter usw. Musst du natuerlich noch ein bisschen anpassen.void CProjektView::OnChangeSuche() { // Parameter setzen UpdateData(TRUE); SetCurSel(0); SetFlags(); m_bDsErster = true; // Die Anzahl der Zeichen im Suchstring int suchanzahl; // Subitem fuer die Suche in Name oder Vorname int subitem = 0; // Gesamtanzahl der items im ListView int itemgesamt = m_MainList.GetItemCount()+2; int zaehler = 0; // initialisiert die Variable fuer die Suche int found = 0; // temporaere Variable fuer m_MainSuche CString suchtext; // temporaere Variable fuer die Texte des Listviews CString viewtext; // Auslesen, ob nach Name oder Vorname gesucht // werden soll if(m_RadioName == 0) subitem = 2; else subitem = 3; // Inhalt von m_MainSuche holen UpdateData(TRUE); m_MainSuche.GetWindowText(suchtext); //suchtext = m_MainSuche; // Konvertierung in Kleinschreibung, um die Suche unabhaengig zu machen suchtext.MakeLower(); suchanzahl = suchtext.GetLength(); // Duchlaufen des ListViews und Vergleich mit dem Suchstring while(found == 0) { // Den Text im ListView zurecht kneten :clown: viewtext = m_MainList.GetItemText(zaehler,subitem); viewtext = viewtext.Left(suchanzahl); viewtext.MakeLower(); if(viewtext.Compare(suchtext) == 0) { found = 1; } zaehler++; if(zaehler == itemgesamt) break; }; // Wenn ein Eintrag gefunden wurde das entsprechende item markieren if(found == 1) { m_MainList.SetItemState(zaehler-1,LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); // alle Parameter fuer Auswahl, Datensatz usw. setzen SetCurSel(zaehler); SetFlags(); m_MainList.EnsureVisible(zaehler-1,FALSE); if(zaehler > 1) m_bDsErster = false; } UpdateData(FALSE); }
Gruss
Ralf