事实上,我正试图从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 << ",";