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

Sal*_*dor 8 c++ windows delphi winapi

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

kob*_*bik 17

GetScrollBarInfoOBJID_HSCROLL或怎么样?OBJID_VSCROLL

如果idObject是OBJID_CLIENT和由HWND指定的窗口不是系统滚动条控制,该系统发送该消息SBM_GETSCROLLBARINFO到窗口以获得滚动条信息.这允许GetScrollBarInfo在模仿滚动条的自定义控件上操作.如果窗口不处理SBM_GETSCROLLBARINFO消息,则GetScrollBarInfo函数将失败.

你可以rgstateSCROLLBARINFO结构中测试,那里有STATE_SYSTEM_INVISIBLE一面旗帜.


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