0

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

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

4

2 回答 2

3

列表视图项和子项不是窗口句柄。它们是列表视图的内部子级,使用LVM_GETITEMLVM_SETITEM消息和LVITEM结构公开。(子项使用相同的接口;在这种情况下, 的iSubItem成员LVITEM将是非零的。)

于 2014-11-11T14:32:41.023 回答
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

于 2017-03-29T15:20:17.787 回答