我不知道COLORREF,但是我使用亮度作为阈值得到了很好的结果:
Y= 0.3 * R + 0.59 * G + 0.11 * B
Run Code Online (Sandbox Code Playgroud)
颜色表示为0.0到1.0之间的十进制值.
如果Y> = 0.5,我认为背景"亮"(并使用深色文本),如果Y <0.5,则表示相反.
我记得我也使用过其他公式,包括简单的意思:
L = (R+G+B)/3
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个结果.我觉得合乎逻辑的是,除了蓝色之外,绿色比红色和红色更有助于亮度.