用GetSysColor可以获得指定的系统颜色的值
但是这个值并不是具体的颜色值
使用GetSysColor获得的值之后怎么转换成对应的颜色值呢?????

解决方案 »

  1.   

    直接等就是了,比如:
    COLORREF color  = GetSysColor(COLOR_3DFACE);
      

  2.   

    不是
    楼上的不清楚
    比如说在XP下,GetSysColor(30)获得的是MenuColor的颜色,而我们从屏幕上看到的是白色
    GetSysColor(30)的这个值并不是白色啊
      

  3.   

    用GetBValue
    GetGValue
    GetRValue来从返回的颜色值中分离出具体各R、G、B 颜色的值
      

  4.   

    MFC中GetSysColor(int nIndex); nIndex的值,最大好像是28吧?GetSysColor(COLOR_MENU);这个是获取的菜单背景色,他的nIndex为4.你不使用系统定义的宏,而去自己传递一些值,当然会获取到不同的颜色了.尽管不同的系统下,不同的风格下,颜色会改变,但你坚持使用windows定义的宏就不会出错吧?
      

  5.   

    在LButtonDown或者MouseMove里面加上这样的代码,不就拾取颜色了吗?
    CDC* pDC = GetDC();
    COLORREF color = pDC->GetPixel(point);
    ReleaseDC(pDC);
      

  6.   

    弱弱的问一下
    GetBValue是哪个DLL里面的
    楼上的
    我的那个键盘也需要
      

  7.   

    请问GetBValue代表什么数字???????
    还有怎么从颜色中分离出这三个颜色值嗯??????????
      

  8.   

    COLORREF color = RGB(111,222,333);BYTE r = GetRValue();  //red   = 111
    BYTE g = GetGValue();  //green = 222
    BYTE b = GetBValue();  //blue  = 333