我创建了一个带有树控件的对话框,当单击树控件的任何特定节点时,它会将数据提取到列表控件中。这就是我尝试插入节点的方式。
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);
当单击一个节点时,它将被定向到事件处理程序“OnTvnSelchangedExample”,并且数据是从 HTREEITEM 的 insertitem 方法中的“lparam”参数中指定的路径获取的。
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();
}
我只能在事件处理程序中访问 lparam 值。
现在我想为整个树的数据实现搜索功能。
所以我需要所有 Tree 句柄的 lparam 值,通过迭代它,以便我可以搜索树中的特定文本。所以不点击树的任何节点,有没有可能得到树句柄(HTREEITEM)的lparam值