7
我想检查外部应用程序的窗口是否有垂直或水平滚动条可见使用窗口的HWND(句柄),是否存在任何WinApi函数来获取此信息?我真的尝试GetScrollInfo
函数,但似乎没有检索有关滚动条可见性的信息。我怎样才能检查一个窗口是否有可见的滚动条使用他的HWND?
我想检查外部应用程序的窗口是否有垂直或水平滚动条可见使用窗口的HWND(句柄),是否存在任何WinApi函数来获取此信息?我真的尝试GetScrollInfo
函数,但似乎没有检索有关滚动条可见性的信息。我怎样才能检查一个窗口是否有可见的滚动条使用他的HWND?
如何GetScrollBarInfo
与OBJID_HSCROLL
或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
看起来很有希望,但不与Internet Explorer窗口或Explorer.exe的应用程序(Windows 7) – Salvador 2012-03-17 17:33:14
我相信'Explorer.exe'包含工作使用'GetWindowLong'控制'SysTreeView32'和'SysListView32'(都返回有效的'WS_HSCROLL'或'WS_VSCROLL')。我使用Spy ++来确认窗口样式。虽然没有用'GetScrollBarInfo'进行测试。 – kobik 2012-03-17 18:00:43