正确用法是:
COLORREF COLOR = RGB (255,255,255);
但是,这个
COLORREF COLOR = (255,255,255);
可以在没有任何警告或错误的情况下编译。
为什么呢?这么奇怪?感谢。
答案 0 :(得分:2)
COLORREF
类型是DWORD
的typedef。这条线
COLORREF COLOR = (255,255,255);
相当于
DWORD COLOR = 255;
因此编译得很好。但它可能无法做你想做的事。
原因是expr1, expr2
在C中产生expr2
的值,因此255, 255, 255
的值为255
。括号在这里没有效果。参见:
http://en.wikipedia.org/wiki/Comma_operator
请注意,RGB宏本身只会从红色,绿色和蓝色组件中生成相应的DWORD
(某个数字)。这里的数字基本上是 COLORREF。