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