我已经创建了一个ColorButton
子类CButton
,在样式中设置BS_OWNERDRAW
标志。
它工作正常:我可以设置它的文本、背景等。
但是我不想手动设置次要颜色(高光、阴影等)。我有一个启发式方法,可以根据背景为文本选择白色或黑色。我可以对其他次要颜色做同样的事情,但我的公式会与 Windows 所做的不同,因为背景颜色相同,因此看起来很奇怪。所以:
问题:有什么方法可以找出 WindowsGetSysColor(COLOR_BTNSHADOW)
在给定背景颜色的情况下会返回什么?
为了预期我看到的答案CMFCButton
允许自定义颜色而不创建整个子类。我再次看到的允许设置每种颜色的微观管理,但不是我正在寻找的高级能力。我可能宁愿坚持我的解决方案,因为它已经在运行,并且适用于 XP 及更高版本。(这是一个免费软件实用程序,所以谁知道旧操作系统用户可能拥有什么。)也就是说,如果有一个CMFCButton
解决方案也会引起人们的兴趣。