c++ - 如何从 MFC 中的 COLORREF 中提取 RGB 值?
问题描述
实际上,我正在尝试从 COLORREF 中提取 RGB 值,但没有得到 0 到 255 范围内的值。相反,我总是得到一些字符串。例如:0000017153665268 我使用了以下方法:
COLORREF obj_Colorref = obj_CColorDialog.GetColor();
RGBTRIPLE rgb;
rgb.rgbtRed = GetRValue(obj_Colorref);
rgb.rgbtGreen = GetGValue(obj_Colorref);
rgb.rgbtBlue = GetBValue(obj_Colorref);
CString sRed;
CString sGreen;
CString sBlue;
sRed.Format(L"%d", rgb.rgbtRed);
sGreen.Format(L"%d", rgb.rgbtGreen);
sBlue.Format(L"%d", rgb.rgbtBlue);
std::ofstream file;
file.open("..//Projects//Ribbon//x64//color.txt");
file << "#"<<"\n"<<"#"<< sRed << ",";
file << sGreen << ",";
file << sBlue << ",";
请帮帮我。
解决方案
问题在于:
file << "#"<<"\n"<<"#"<< sRed << ",";
file << sGreen << ",";
file << sBlue << ",";
wchar_t
它基于基于CString
-char
的流打印。
wchar_t*
不作为字符串打印到basic_ostream<char>
.
最简单的修复方法可能是CString
完全避免:
file << std::to_string((int)rgb.rgbtBlue) << ",";
甚至可能:
file << (int)rgb.rgbtBlue << ",";
推荐阅读
- amazon-web-services - AWS S3 CP——限制要复制的文件数量的属性?
- python - @unittest.skip 在 Python <= 3.7 中不打印任何内容
- function - 在matlab中创建一个连接矩阵
- c - 什么是 int (*tabes)[N]?
- javascript - 有人可以告诉我哪里出错了吗?
- joomla - 在 Fabrik Joomla 中处理未定义的变量
- django - 在 Django 中按类别渲染对象
- directx - 如何在 DX9 着色器中重叠图像形状?
- ssl - Minio 似乎无法识别 TLS/https 证书
- python - 基于两列的 seaborn 范围背景