如何将值从 COLORREF 转换为 const char。目前我尝试按原样使用该变量,但我的编译器出现以下错误。
错误 106 错误 C2664:“HC_Set_Color”:无法将参数 1 从“COLORREF”转换为“const char *”c:\b_gdm_src_wtx\gdm_pda\src\gdmsmallsampledlg3d.cpp 2289
谢谢。
最佳答案
你可以取一个并返回这样的字符串表示:
void COLORREF2string(COLORREF cr, char* buffer) {
itoa(GetRValue(cr), buffer, 10);
buffer += strlen(buffer);
*buffer = ' ';
itoa(GetBValue(cr), buffer + 1, 10);
buffer += strlen(buffer);
*buffer = ' ';
itoa(GetGValue(cr), buffer + 1, 10);
}
然后像这样使用它:
COLORREF c = RGB(34, 54, 12);
char buf[16]; // 16 is big enough to hold any possible RGB combination
// with spaces between the numbers
COLORREF2string(c, buf);
cout << buf << endl;
哪个会打印
34 54 12
如果您愿意,您可以自己制作一个更漂亮的表示形式,例如 R: x B: x G: x
,但请记住相应地调整缓冲区的大小。
关于c++ - 将 COLORREF 转换为 const char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364155/