关于::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi)的问题

xinyi 2007-03-04 02:36:08
很简单的一段代码
LV_ITEM lvi;
lvi.iItem=::SendMessage(hWnd,LVM_GETNEXTITEM,(WPARAM)0,MAKELPARAM((UINT)LVNI_SELECTED,0));//1
if(-1!=lvi.iItem)
{
TCHAR szName[_MAX_FNAME];
lvi.mask=LVIF_TEXT;
lvi.iSubItem=0;
lvi.pszText=szName;
lvi.cchTextMax=_MAX_FNAME;
::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi);//2
}
请问为什么第一个SendMessage会成功返回当前选中的项,第二个SendMessage却会失败???
...全文
766 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
k_badboy 2009-02-14
  • 打赏
  • 举报
回复
你是向外部TREEVIEW发送的吧???
xinyi 2007-03-12
  • 打赏
  • 举报
回复
这么难吗?
xinyi 2007-03-09
  • 打赏
  • 举报
回复
哈哈,为什么是干坏事啊,没有
xinyi 2007-03-06
  • 打赏
  • 举报
回复
SubItem 我0-3都试过了,没有反应
DkMoggy 2007-03-06
  • 打赏
  • 举报
回复
Spy++,看看另外的进程收到LVM_GETITEM消息了没。
我猜另外的进程肯定不是你写的,干坏事啊.....

做个好孩子
莫学WHBoy
DkMoggy 2007-03-05
  • 打赏
  • 举报
回复
LV_ITEM.iSubItem
One-based index of the subitem to which this structure refers, or zero if this structure refers to an item rather than a subitem.

可能是mask=LVIF_TEXT, 而Item不能取回TEXT,只有SubItem才能取回Text。

绝对和hWnd是另外一个进程中的句柄无关。
xinyi 2007-03-05
  • 打赏
  • 举报
回复
somebady help me
xinyi 2007-03-04
  • 打赏
  • 举报
回复
是不是因为hWnd是另外一个进程中的句柄?

如果是的话,请问该怎么做?
xinyi 2007-03-04
  • 打赏
  • 举报
回复
很简单的一段代码

LV_ITEM lvi;
lvi.iItem=::SendMessage(hWnd,LVM_GETNEXTITEM,(WPARAM)0,MAKELPARAM((UINT)LVNI_SELECTED,0));//1
if(-1!=lvi.iItem)
{
TCHAR szName[_MAX_FNAME];
lvi.mask=LVIF_TEXT;
lvi.iSubItem=0;
lvi.pszText=szName;
lvi.cchTextMax=_MAX_FNAME;
::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi);//2
}

请问为什么第一个SendMessage会成功返回当前选中的项,第二个SendMessage却会失败???

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧