VB6 / WinAPI:如何获取ListView.ListItem的hwnd?

时间:2014-11-11 14:20:18

标签: winapi vb6 findwindowex

我有一个带有ListView(MSCOMCTL.OCX)的VB6应用程序。我需要获取listviewitem的窗口句柄(hwnd),或者最好(如果存在这样的东西) - 特定子项目。

我知道我可以使用FindWindowEx获取列标题的句柄并查找类msvb_lib_header,但我不知道如何获取该项的句柄。 Spy ++将msvb_lib_header窗口显示为listview的子窗口,但不显示任何其他窗口。

2 个答案:

答案 0 :(得分:3)

List view items and subitems are not window handles.他们是列表视图的内部子项,使用LVM_GETITEMLVM_SETITEM消息以及LVITEM结构公开。 (子项使用相同的接口;在这种情况下,iSubItem的{​​{1}}成员将非零。)

答案 1 :(得分:0)

ListView.ListItem对象没有hwnd。

您应该按类名搜索ListView,然后使用SendMessage()发送消息LVM_GETITEM并使用LVITEM结构获取有关项目的信息:

LVM_GETITEM消息(Windows)

https://msdn.microsoft.com/en-us/library/windows/desktop/bb774953(v=vs.85).aspx

LVITEM结构(Windows)

https://msdn.microsoft.com/en-us/library/windows/desktop/bb774760(v=vs.85).aspx

此参考页面可以帮助您:

列表视图控件参考(Windows) https://msdn.microsoft.com/en-us/library/windows/desktop/ff485973(v=vs.85).aspx