如何在TJvTreeView中检查滚动条的存在

时间:2014-04-03 04:58:49

标签: delphi scroll treeview jedi

我试图定位w.r.t.一个TJvTreeView,我想知道垂直滚动视图的宽度和存在。有谁知道这样做的规范方法?或者失败,任何方式都有效?

1 个答案:

答案 0 :(得分:2)

测试是否存在WS_VSCROLL窗口样式:

HasVertScrollBar := (GetWindowLongPtr(hWnd, GWL_STYLE) and WS_VSCROLL) <> 0;

要查找系统滚动条的宽度,请通过SystemParametersInfo调用SPI_GETNONCLIENTMETRICS

var
  ncm: TNonClientMetrics;
....
ncm.cbSize := SizeOf(ncm);
Win32Check(
  SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, Pointer(@ncm), 0)
);

然后可以从ncm.iScrollWidth检索滚动条宽度。