4

出于可访问性的目的,我需要使所有可滚动控件(列表、列表视图)的滚动条更宽,滚动条箭头更大。

  1. 如何从可滚动控件(例如:TListView)中获取滚动条(句柄)?

  2. 如何使滚动条和箭头更宽/更大?

任何提示和代码的 10 倍...

4

2 回答 2

6

可访问性与单个应用程序无关,而是与整个系统有关。这就是为什么没有定义 API 来仅针对您的程序调整本机控件的边框宽度、滚动条大小和类似属性等内容。但是,您可以在 Windows 中全局调整这些设置,方法是使用辅助功能向导,或者在显示属性小程序中调整字体、颜色、边框大小和滚动条大小。

有关更多信息,您应该查看Microsoft 辅助功能页面并点击各种链接。

编辑:为了您自己的程序的利益而更改全局设置(如公认的答案所示)是极端粗鲁的。请记住,这会干扰所有其他正在运行的程序。对于带有触摸屏的系统来说,这可能是可以原谅的,其中控件需要很大才能完全可用 - 但在这样的系统上,控件大小可能已经正确设置。

于 2009-02-21T14:07:13.320 回答
4

我不确定您是否可以 - 您必须为整个 Windows 更改(并恢复)它。

http://www.greatis.com/delphicb/tips/lib/system-captionfont.html

设置和读取属性 TNonClientMetrics.iScrollWidth


编辑:我知道这个解决方案很粗鲁,但在通常情况下是你能做的最好的。如果您有专门的 TabletPC 应用程序,那么您通常一次只使用该应用程序,而不使用其他应用程序。但是 - 几乎所有的 Windows 应用程序都不是为使用这么大的滚动条而设计的。因此,当您需要使用操作系统对话框和其他应用程序时,您必须将其切换回来。

没有比“当我的触摸屏应用程序运行时设置窗口滚动条大,然后将其返回”更好的解决方案。我们在现实世界中这个应用程序,所以我知道我在说什么。

当然,您可以编写自己的网格控件(如果您有这么多时间)或使用一些第三方控件(如果您有钱和时间),但这不是问题。

于 2009-02-21T13:59:01.497 回答