如何使用他的HWND检查窗口是否有可见的滚动条

How I can check if a Window has visible scrollbars using his HWND?

本文关键字:滚动条 是否 检查 何使用 HWND 窗口      更新时间:2023-10-16

我想使用窗口的HWND(句柄)检查外部应用程序的窗口是否有垂直或水平滚动条可见,是否存在任何WinApi函数来获取此信息?我确实尝试了GetScrollInfo函数,但它似乎无法检索有关滚动条可见性的信息。

GetScrollBarInfoOBJID_HSCROLLOBJID_VSCROLL 如何

如果idObject是OBJID_CLIENT,并且hwnd指定的窗口不是系统滚动条控件,则系统向该窗口发送SBM_GETSCROLLBARINFO消息以获得滚动条信息。这允许GetScrollBarInfo对模拟滚动条的自定义控件进行操作。如果窗口不处理SBM_GETSCROLLBARINFO消息,则GETSCROLLBARINFO函数将失败。

您可以在SCROLLBARINFO结构中测试rgstate,那里有一个STATE_SYSTEM_INVISIBLE标志。


另一种可能的方法是测试GetWindowLong(hWnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL) <> 0