The first COLOR_* value defined is COLOR_SCROLLBAR with the value 0 (see Winuser.h). If you didn't add one you wouldn't be able to differentiate between COLOR_SCROLLBAR and a NULL HBRUSH.
If you remove the +1 and only specify COLOR_WINDOW (5) you effectively get the same as COLOR_MENU (4) + 1, i.e. the menu color. Maybe they're both defined to be white.
使用颜色的时候,必须把每个颜色宏+1,才能得到正确的颜色,这是用法,没有特别的含义。
因为滚动条颜色宏被定义成 #define COLOR_SCROLLBAR 0,如果不进行+1的话,使用这个颜色就是意外的变成NULL,为了避免这种情况,所以把所有的颜色值+1处理。
原文地址1:http://topic.csdn.net/u/20080129/15/289b1b29-18f9-4721-bdfe-be1d2758e874.html
原文地址2:http://social.msdn.microsoft.com/Forums/zh-SG/vcgeneral/thread/e4fd1c4b-4407-4743-a74f-7d78338c17d2