在XP系统下,如果使用Windows XP 样式,那么控件的边框颜色就不是黑色,会有一点微带蓝色。我用GetSysColor获得不到这个颜色值。我想问,如何获得这个颜色值!

解决方案 »

  1.   

    微软定义的从0~~30  这31个值我都试过了,取出的颜色都不对。。或者不是用GetSysColor函数取,而是有别的函数呢?
      

  2.   

    朋友,XP Visual Style颜色得用
    GetThemeColor
      

  3.   

    其实我的目的是这样的,我要自绘一个可以改变边框颜色的控件,默认还是使用系统的一样的颜色。但是在不同风格下系统的默认颜色不同,所以,我就希望能够在不同情况下获得这个默认颜色设置为我要边框默认颜色。现在没有控件让我提取,所以GetThemeColor行不同。如果定死一个颜色,换了风格,颜色就不对了,所以也不能用吸管吸。
      

  4.   

    .........
    俺只想问你一句:
    你确定你试过了吗?朋友???
    为什么叫GetThemeColor?那是因为他的返回值随不同的Theme可能会不同。
    有些事情要试过才知道
      

  5.   

    PhotoShop 工具吸取下颜色看看值不久得了~
      

  6.   

    也许是我理解错误。HRESULT GetThemeColor(          HTHEME hTheme,
        int iPartId,
        int iStateId,
        int iPropId,
        COLORREF *pColor
    );需要一个 HTHEME hTheme用HTHEME OpenThemeData(          HWND hwnd,
        LPCWSTR pszClassList
    );得到一个 HTHEME hTheme,但是这个函数需要一个HWND hwnd这个hwnd怎么得到?
      

  7.   

    请参看MSDN的说明,那个hwnd可以是任何Themed的窗口句柄,Button、Edit、ListView、DesktopWindow等等,只要使用了主题的
      

  8.   

      重新派生CBotton类,重写virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);类
      用PhotoShop吸管得到颜色rgb,想怎么画就怎么画了
      

  9.   

    我想Lin提供的方法是我要的,我去琢磨Theme,结贴