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



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

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

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

ListView.ListItem对象没有hwnd。

您应该按类名搜索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

相关内容

  • 没有找到相关文章

最新更新