我有一个项目,我需要使用一个需要 COLORREF
的 API 和另一个返回 COLORREF
的 API。 COLORREF
是 MFC,我的项目 Qt 不想使用任何 MFC 代码。 COLORREF
最终不过是 unsigned long,所以我希望有一个解决方案。
所以有2个问题:
- 从返回
COLORREF
的 API 中获取 unsigned long 并从这个 unsigned long 数创建 QColor。请注意,我不能使用GetRValue()
或GetGValue()
,因为它们会要求我包含windows.h
。 - 从创建的 QColor(我可以做到),将其转换为合适的无符号长整数,我可以将其发送到需要
COLORREF
的 API。
最佳答案
自 COLORREF
只是组织为0x00bbggrr
的DWORD
,您可以轻松地将其转换为组件并构造QColor
int r = color & 0xff;
int g = (color >> 8) & 0xff;
int b = (color >> 16) & 0xff;
QColor qc(r, g, b);
关于c++ - 从 unsigned long (COLORREF) 获取 QColor 而不包括 windows.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396659/