2016-02-19 85 views
0

有没有一种方法(API文件,DLL,msstyles ...)来修改样式(除去一些elemets,改变颜色,宽度,...)出现在Windows 10中的所有滚动条?有没有办法改变所有滚动条(Win10)的样式?

例如从这个enter image description hereenter image description here

+2

你可以自由地画自己的滚动条,你希望 –

+0

任何资源任何方式(链接,对于谷歌的话...)如何实现呢? – Patrik

+0

从学习Win32开始。当然,我们仍然不知道您是想为您的应用或所有应用执行此操作。后者是不可能的,甚至是明智的。 –

回答

1

,如果你想改变你的系统上所有滚动条你不需要编写程序。事实上,这将是一个庞然大物承诺这样做。您必须钩住负责绘制滚动条的Windows API函数,并将其替换为您自己的绘图代码。除了需要对Win32编程的高级理解(远远超过任何人可以在单个堆栈溢出答案中教你的事实)之外,要确保你的代码与原始代码行为相同将是非常困难的。即使经过大量测试,应用程序错误也是不可避免的。没有关心系统稳定性的用户会想要运行这样的应用程序。

从你的截图,它看起来像你只是想改变滚动条的宽度/高度,使它们变得更小。虽然用于自定义高级外观属性的UI已从Windows 8及更高版本中删除,但可以在注册表中手动设置度量标准。滚动条的大小是其中之一。

  1. 导航到以下注册表项:HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
  2. 设置ScrollWidthScrollHeight值,以像素为单位你想要的大小,再乘以-15。
    例如,要将滚动条设置为只有8个像素,您应将值设置为-120。 (这是你可以走的最小的。)默认值是-255。
  3. 重新启动计算机以确保更改生效。

如果您不习惯修改注册表,则可以使用第三方应用程序为您执行此操作,例如Winaero Tweaker

但是,请注意,兼容性问题在这些解决方案的之间不会出乎意料。如果Windows团队打算支持自定义大小的滚动条,他们将保持外观定制界面不变。

+1

感谢您的回答。我知道这不是一个简单的任务。这就是为什么我在这里写下我的问题的原因,因为我没有找到关于滚动条(dll,函数,......)渲染的详细信息(规范)。我认为没有必要学习完整的Win32来实现这种改变。我知道注册表使用'WindowMetrics'进行破解,但它只改变了滚动条的高度和高度。我使用错误示例的错误: - /我的主要目标是从滚动条中移除不需要的元素,或者至少更改这些元素的颜色(例如为白色)。 – Patrik

+1

我从'user32.dll'找到'SetSysColors'函数,但它对我还没有工作(C#)。我也尝试将'HKEY_CURRENT_USER \ Control Panel \ Colors \ Scrollbar'的注册表值更改为白色的RGB值,但该更改对我无效。 – Patrik

+1

是的,从16位Windows开始,'COLOR_SCROLLBAR'没有任何效果。滚动条既可以使用“COLOR_3DFACE”和“COLOR_3DHIGHLIGHT”的棋盘组合,也可以使用纯色“COLOR_3DHIGHLIGHT”。正如我所说,做到这一点的唯一方法是钩住所有的滚动条相关的功能,并做自己的绘图。我甚至不确定这是否可能。如果所有的滚动条绘图代码都不是集中在一个API中,那么您将抓住吸管。学习高级Win32编程来做到这一点肯定是必要的。从C#这样的托管语言不可能实现。 –

相关问题