2012-03-17 16 views

回答

16

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

+0

看起来很有希望,但不与Internet Explorer窗口或Explorer.exe的应用程序(Windows 7) – Salvador 2012-03-17 17:33:14

+1

我相信'Explorer.exe'包含工作使用'GetWindowLong'控制'SysTreeView32'和'SysListView32'(都返回有效的'WS_HSCROLL'或'WS_VSCROLL')。我使用Spy ++来确认窗口样式。虽然没有用'GetScrollBarInfo'进行测试。 – kobik 2012-03-17 18:00:43

相关问题