0

在 Windows 7 和 Windows XP 中,您可以在“控制面板\外观和个性化\个性化”下找到“窗口颜色和外观”对话框。更改项目“3D-Border”的“Color1”将导致注册表项中的以下条目发生更改

[HKEY_CURRENT_USER\控制面板\颜色]

包含生成的 rgb 值:

Group1(相同的值):

InactiveTitle、AppWorkspace、ButtonShadow、Graytext

Group2(相同的值,与 group1 的不同):

滚动条,ButtonHilight

有谁知道这些值是如何从“Color1”的给定 rgb 值计算出来的?在没有结果的情况下搜索网络并玩弄了许多值之后,我没有碰巧找到一种可行的方法来做到这一点。有谁知道这个规则?任何帮助,将不胜感激。

我上传了一些演示值,系统地处理了下部的值。在颜色更改为红色 (255 0 0) 后,还有一个文本文件比较受影响的注册表项 [HKEY_CURRENT_USER\Control Panel\Colors]。

4

1 回答 1

0

当您将“3D 边框”颜色设置为红色时,它会将“按钮面”颜色更改为红色并插值此颜色以生成各种较浅和较深的红色阴影,这些阴影用于设置一些相关的颜色值。

关键是要以最少的努力创建一个外观一致的主题。您需要做的就是为 3D 对象设置“基础”颜色,然后自动计算所有其他颜色以确保对象具有适当的 3D 外观。

其中一些值,例如用于 3D 对象的高光和阴影颜色,不能从控制面板小程序直接配置。但是,它们可以在注册表中手动设置,您可以调用SetSysColors函数来更新当前正在运行的应用程序。

为什么你认为你需要知道 Windows 使用的实际算法?你想解决什么问题?你打算用这些信息做什么?

我不认为确切的算法记录在任何地方。至少从 Windows 95 开始,该代码就已成为操作系统的一部分。

于 2013-08-05T15:21:17.140 回答