gpt4 book ai didi

c++ - 如何获取选定的 TreeView 项目文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:10 27 4
gpt4 key购买 nike

我正在使用 WINAPI Treeview 来显示一些数据。当我选择一个 TV ITEM 时,我必须得到选定的 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;
}

我无法获得正确的值,我得到了某种垃圾值。MessageBox 显示一些特殊字符(键盘上没有)

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

最佳答案

您是否阅读了有关 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 为您分配和管理字符串?它只是没有发生。

关于c++ - 如何获取选定的 TreeView 项目文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10780015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com