如何获取选定的树视图项文本

how to get Selected treeview item text

本文关键字:视图 文本 何获取 获取      更新时间:2023-10-16

我正在使用WINAPI树视图来显示一些数据。当我选择一个电视项目时,我必须获取选定的TV_ITEM文本。我正在使用以下代码

case WM_NOTIFY:
 switch( ((LPNMHDR)lParam)->code)
 {
 case TVN_SELCHANGED:
  {
         NMTREEVIEW* pnmtv = (LPNMTREEVIEW)lParam;
         LPTSTR str = (pnmtv->itemNew.pszText);
         MessageBox( hWnd, str,"load",MB_OK );
  }
  break;                        
}

无法获得正确的值,我得到了某种垃圾值。消息框显示某种特殊字符(那些不在键盘中)

谁能帮我,如何获取所选项目文本。提前致谢

你读过TVN_SELCHANGED的文档吗?它从未提及pszText。你需要

TVITEM item;
item.hItem = pnmtv->itemNew.hItem;
item.mask = TVIF_TEXT;
item.pszText = // allocate buffer
item.cchTextMax = // length of buffer
::SendMessage(hWnd, TVM_GETITEM, 0, (LPARAM)&item);

然后你会得到item.pszText

附言如果您正在使用 Windows API,您多久看到一次 Windows 为您分配和管理字符串?它只是没有发生。