Ich erstellte einen Dialog mit einem Tree-Steuerelement, das Daten an ein Listensteuerelement abruft, wenn auf einen bestimmten Knoten des Treecontrol geklickt wird. So habe ich versucht Knoten einzufügen.Get lparam Wert aus dem htreeitem C++
CString *sCommonAppkey = new CString(_szApp + sIsPath);
HTREEITEM hrCommon = m_cTreeCtrl.InsertItem(TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM, _T("Common"), icoPlanit, icoPlanit, 0, 0, (LPARAM)(LPCTSTR)sCommonAppkey, NULL, NULL);
Wenn an einem Knoten angeklickt es an den Ereignishandler wird gerichtet „OnTvnSelchangedExample“ und die Daten abgerufen aus dem Pfad in „lparam“ Parameter in der Methode des InsertItem HTREEITEM angegeben.
void **CExample**::OnTvnSelchangedExample(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
LPARAM lp = pNMTreeView->itemNew.lParam;
CString *sTempKey = (CString *)lp;
CString path = sTempKey->GetBuffer();
}
Ich kann den Lparam-Wert nur im Event-Handler zugreifen.
Jetzt möchte ich Suchfunktionalität für die gesamten Baumdaten implementieren.
Also brauche ich den Lparam-Wert aller Tree-Handles der Reihe nach durch Iterieren, so dass ich nach dem bestimmten Text in der Struktur suchen kann. Also, ohne auf einen Knoten des Baumes zu klicken, gibt es irgendeine Möglichkeit, den lparam-Wert von Tree handle (HTREEITEM)
es tut mir leid, wenn ich Sie eine dumme Frage stelle. Aber TreeView_GetItem() übernimmt HWND-Handle und wie kann ich ein Tree-Handle darin übergeben – user3655089