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

时间:2012-03-17 16:37:43

标签: c++ windows delphi winapi

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

1 个答案:

答案 0 :(得分:17)

OBJID_HSCROLLOBJID_VSCROLL

GetScrollBarInfo怎么样?
  

如果 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