[英]How to extract RGB value from COLORREF in MFC?
實際上,我正在嘗試從 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
的 stream。
wchar_t*
不會作為字符串打印到basic_ostream<char>
中。
最簡單的修復方法可能是完全避免使用CString
:
file << std::to_string((int)rgb.rgbtBlue) << ",";
甚至可能:
file << (int)rgb.rgbtBlue << ",";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.