我有一个带有两个关联滚动条的SysTreeView32控件:

c++ - 如何获取SysTreeView32滚动条的句柄?-LMLPHP

从树所在的窗口开始,我无法恢复滚动条的句柄。我编写了一个简单的递归函数来导航控件及其所有子控件:

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存在的滚动条类,但树 View 控件(和大多数其他常见控件)使用the other scrollbar type,它是父级HWND的一部分(WS_HSCROLL和/或WS_VSCROLL样式)。

10-08 11:39