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

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

带有OBJID_HSCROLLOBJID_VSCROLL GetScrollBarInfo如何OBJID_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