Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » FAQ VC++ / MFC » Eine Tree-ansicht durchsuchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.12.2002, 14:22 Uhr
Hawkeye



Hallo Leute!

Ich lese aus einer Datei einen CString aus und möchte den in einer Tree-Ansicht suchen lassen, um den dann zu markieren.

Wie kann ich das bewerkstelligen?

Dieser Post wurde am 16.12.2002 um 14:22 Uhr von Hawkeye editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2002, 14:34 Uhr
void*
Generic Pointer
(Operator)


Rekursiv
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.12.2002, 07:46 Uhr
Hawkeye



Vielleicht noch ein Code-Beispiel?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.12.2002, 09:20 Uhr
void*
Generic Pointer
(Operator)


CTreeCtrl g_tree;
Hallo!

Ungefähr so (nicht im geringsten getestet):


C++:
// ...

HTREEITEM item=g_tree.GetRootItem();

item=SearchTree(item, "Suchstring");

// item==0 falls kein Element mit dem Name, sonst das Element mit Namen "suchString"

HTREEITEM SearchTree(HTREEITEM item, const CString &suchString)
{
  // GetItemText() oder was auch immer mit suchString vergleichen
  // falls gefunden item zurückgeben
  
  HTREEITEM help=g_tree.GetNextSiblingItem(item);
  
  if(SearchTree(help, suchString))
    return(help);
  else
  {
    help=g_tree.GetChildItem(item);
    if(SearchTree(help, suchString))
      return(help);
    else
      return(0);
  }
}


--
Gruß
void*

Dieser Post wurde am 17.12.2002 um 09:21 Uhr von void* editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.12.2002, 07:45 Uhr
Hawkeye



Damit geht's:


C++:
void CTest2Dlg::Suchen()
{
  HTREEITEM such=m_Tree.GetRootItem(); //m_Tree - Control
  BOOL find=0;
  CString suchtxt;

  while(find!=1)
   {
    suchtxt=m_Tree.GetItemText(such);

    if(strcmp(suchtxt,Titel)==0) //Titel - global, aus einer Datei gelesen
     {
      m_Tree.SelectItem(such);

      find=1;
     }

    else
     {
      if(m_Tree.ItemHasChildren(such))
       {
        such=m_Tree.GetChildItem(such);

        suchtxt=m_Tree.GetItemText(such);
        
        if(strcmp(suchtxt,Titel)==0)
         {
          m_Tree.SelectItem(such);

          find=1;
         }
       }
     }
    such=m_Tree.GetNextVisibleItem(such);
   }
}



EDIT: Code-Tags eingefügt

Dieser Post wurde am 19.12.2002 um 09:49 Uhr von void* editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ FAQ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: