我有一个带有ListView(MSCOMCTL.OCX)的VB6应用程序。我需要获取listviewitem的窗口句柄(hwnd),或者最好是(如果存在类似的东西)特定子项的窗口句柄。
我知道我可以使用FindWindowEx并查找类msvb_lib_header来获取列标题的句柄,但我不知道如何获取项的句柄。Spy++将msvb_lib_header窗口显示为列表视图的子窗口,但不显示任何其他窗口。
列表视图项和子项不是窗口句柄。它们是列表视图的内部子级,使用LVM_GETITEM
和LVM_SETITEM
消息以及LVITEM
结构公开。(子项使用相同的接口;在这种情况下,LVITEM
的iSubItem
成员将为非零。)
您应该按类名搜索ListView,然后使用SendMessage()发送消息LVM_GETEM,并使用LVITEM结构获取有关项的信息:
LVM_GETEM消息(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