从unsigned long(COLORREF)获取QColor,不包括windows.h

时间:2016-04-04 07:19:36

标签: c++ qt mfc

我有一个项目,我需要使用期望COLORREF的API和另一个返回COLORREF的API。 COLORREF是MFC,我的项目Qt不想使用任何MFC代码的痕迹。 COLORREF最终只是无条件的,所以我希望有一个解决方案。

所以有两个问题:

  • 从API返回COLORREF获取unsigned long并从此无符号长号创建QColor。请注意,我无法使用GetRValue()GetGValue(),因为他们要求我加入windows.h
  • 从创建的QColor(我可以这样做),将其转换为一个体面的无符号长整数,我可以将其发送到期望COLORREF的API。

1 个答案:

答案 0 :(得分:3)

由于COLORREF只是void rotate(std::vector<std::vector<int>>& v) { size_t m= v.size(); size_t n=v[0].size(); for(size_t i=0;i<m;i++) { for(size_t j=0,k=n-1;j<k;j++,k--) { std::swap(v[i][j],v[i][k]); } } for(size_t j=0;j<n;j++) { for(size_t i=0, k=m-1; i<k; i++, k--) { std::swap(v[i][j],v[k][j]); } } } 组织为DWORD,因此您可以轻松地将其转换为组件并从中构建QColor

0x00bbggrr