我有一个带有ListView(MSCOMCTL.OCX)的VB6应用程序。我需要获取listviewitem的窗口句柄(hwnd),或者最好(如果存在这样的东西) - 特定子项目。
我知道我可以使用FindWindowEx获取列标题的句柄并查找类msvb_lib_header,但我不知道如何获取该项的句柄。 Spy ++将msvb_lib_header窗口显示为listview的子窗口,但不显示任何其他窗口。
答案 0 :(得分:3)
List view items and subitems are not window handles.他们是列表视图的内部子项,使用LVM_GETITEM
和LVM_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