如何获取 SysTreeView32 的滚动条句柄?
How to get the handle of a SysTreeView32's scrollbar?
我有一个带有两个关联滚动条的 SysTreeView32 控件:
从树所在的 window 开始,我无法恢复滚动条的句柄;我写了一个简单的递归函数来导航控件及其所有子项:
TestScroll( HWND hwnd, UINT msg, UINT_PTR nId, DWORD nTickCount)
{
CWnd* pNextWnd = tmpWnd->GetWindow( GW_CHILD) ;
if ( pNextWnd != NULL)
TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;
pNextWnd = tmpWnd->GetNextWindow( GW_HWNDNEXT) ;
if ( pNextWnd != NULL)
TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;
}
当我到达 SysTreeView32 控件时,我无法进一步进入层次结构,似乎没有更多的子控件;但 Spy++ 确认滚动条确实存在。
欢迎任何建议,非常感谢!
Windows 确实提供了一个可以作为 HWND 存在的滚动条 class,但是树视图控件(以及大多数其他常见控件)使用 the other scrollbar type,它是父级 HWND(WS_HSCROLL
and/or WS_VSCROLL
样式)。
我有一个带有两个关联滚动条的 SysTreeView32 控件:
从树所在的 window 开始,我无法恢复滚动条的句柄;我写了一个简单的递归函数来导航控件及其所有子项:
TestScroll( HWND hwnd, UINT msg, UINT_PTR nId, DWORD nTickCount)
{
CWnd* pNextWnd = tmpWnd->GetWindow( GW_CHILD) ;
if ( pNextWnd != NULL)
TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;
pNextWnd = tmpWnd->GetNextWindow( GW_HWNDNEXT) ;
if ( pNextWnd != NULL)
TestScroll( pNextWnd->GetSafeHwnd(), msg, nId, nTickCount) ;
}
当我到达 SysTreeView32 控件时,我无法进一步进入层次结构,似乎没有更多的子控件;但 Spy++ 确认滚动条确实存在。
欢迎任何建议,非常感谢!
Windows 确实提供了一个可以作为 HWND 存在的滚动条 class,但是树视图控件(以及大多数其他常见控件)使用 the other scrollbar type,它是父级 HWND(WS_HSCROLL
and/or WS_VSCROLL
样式)。