Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe eine Methode implementiert, mit der man den Inhalt eines TreeCtrls durchsuchen kann. Der User gibt einen Wert ein, und wenn der Wert als Node des TreeCtrls exisitert, wird der entsprechende Node markiert.

Das "Markieren" soll über

pCtrl->SelectItem(htiNode);

gelöst werden.

Der Node wird wie gewünscht expandiert, allerdings ist der Texteintrag daneben nicht blau markiert.

Es sieht also so aus, wie wenn man einen Node expandiert, indem man das kleine + anklickt, aber nicht auf den Texteintrag doppelklickt.

Wie erreiche ich aber das? Text soll markiert werden.

Gruß,

Technician

Geschrieben
Originally posted by Guybrush Threepwood

Hast du`s anstatt mit SelectItem() mal mit Select() versucht, da kann man

noch einen Parameter übergeben ob die Ansicht aktualiesirt werden soll.

Der Parameter ist TVGN_CARET

Aber diese Aktualisierung hat, soweit ich weiß, keinen Einfluss auf diese "Text-Markierung".

Geschrieben

... was ich mich auch wundere:

die Methode

void CMyFormView::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)

wird beim Aufruf von pCtrl->Select(hti, TVGN_CARET); definitiv nicht ausgeführt...

Aber genau der Code, der beim manuellen Anklicken ausgeführt wird (nämlich der in OnSelchangedTree1), soll auch beim "automatischen Anklicken", also wenn ich das explizit für genau diesen Node möchte, ausgeführt werden.

Geschrieben

Vielleicht hilft Dir das:

Bei mir haut es jedenfalls hin.

void CTest2Dlg::Suchen()

{

HTREEITEM such=m_Tree.GetRootItem(); //das erste Item greifen

BOOL find=0;

CString suchtxt;

while(find!=1)

{

suchtxt=m_Tree.GetItemText(such); //ich mache aus dem Item einen Text

if(strcmp(suchtxt,Titel)==0) //vergleiche den mit suchtxt

{

m_Tree.SelectItem(such); //Item wird im Tree gefunden und markiert

find=1;

}

else

{

if(m_Tree.ItemHasChildren(such)) //Item hat Unteritems

{

such=m_Tree.GetChildItem(such);

suchtxt=m_Tree.GetItemText(such);

if(strcmp(suchtxt,Titel)!=0)

{

if(m_Tree.ItemHasChildren(such)) //Unteritem hat Unteritems

{

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); //wenn nicht gefunden, weitersuchen

}

}

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...