如果窗口有非标准滚动条,有没有办法用WinAPI检测(例如,窗口可以自己绘制滚动条而不是使用标准滚动条)?
答案 0 :(得分:2)
我不太确定这是否有效,但这只是一个想法。 滚动条属于必须在启用此样式的情况下创建的窗口。因此,您可以检查您的窗口是否包含WS_VSCROLL样式,如果是,则这是标准滚动条。在对方中,它是由其他人绘制的。
你可以这样检查:
// Assume that a window handle hWnd is known
int style = GetWindowLong(hWnd, GWL_STYLE);
BOOL bStandard = ((style & WS_VSCROLL) != 0);
答案 1 :(得分:1)
很难看出你如何做到这一点。一个控件可以在自己的画布上绘制滚动条,进行自己的命中测试,你怎么可能知道。您可以在不为滚动条创建单独的HWND的情况下完成所有这些操作。
更有意思的是,如果你能说出为什么你想知道这一点。