使用style.getbackground(&variantval);得到一个VARIANT变量
BSTRVAL就是颜色字符串
但是怎样转换为COLORREF类型呢?

解决方案 »

  1.   

    你可以看看BSTRVAL里是什么值,BSTRVAL也就是BSTR类型的,你可以看看下面的,把BSTR的值取出来
    http://www.vckbase.com/document/viewdoc/?id=1488
      

  2.   

    BSTRVAL的值是"#ffffff"这样的字符串,这本身应该就是一个COLORREF类型的值吧?但是不能直接转换为COLORREF呀??
      

  3.   

    COLORREF color;
    style.getbackground(&variantval);
    swscanf(variantval.bstrVal, L"#%x", &color);
    // 如果是大写用%X
    //swscanf(variantval.bstrVal, L"#%X", &color);
      

  4.   

    谢谢,但是现在有个问题,读进来的颜色值,RGB颜色是相反的,R应该是B的,有函数能处理吗?
      

  5.   

    When specifying an explicit RGB color, the COLORREF value has the following hexadecimal form: 0x00bbggrr 你按照上面规格调整一下