如何將COLORREF中的值轉換爲常量字符。目前我嘗試按原樣使用該變量,但從編譯器中得到以下錯誤。將COLORREF轉換爲常量字符
錯誤106錯誤C2664: 'HC_Set_Color':不能從 'COLORREF' 轉換參數1至 '爲const char *' C:\ b_gdm_src_wtx \ gdm_pda \ SRC \ gdmsmallsampledlg3d.cpp 2289
感謝。
如何將COLORREF中的值轉換爲常量字符。目前我嘗試按原樣使用該變量,但從編譯器中得到以下錯誤。將COLORREF轉換爲常量字符
錯誤106錯誤C2664: 'HC_Set_Color':不能從 'COLORREF' 轉換參數1至 '爲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
你自己如果你想要的,但記得要調整緩衝區的大小因此。
假設這是你要遵循規範:設置 _color.html#g406b806a5ed60dd9950fb12b0ce2077c
set_color.html#g406b806a5ed60dd9950fb12b0ce2077c「> http://www.openhsf.org/docs_hsf/Hoops3DGS/hc_ref_manual/group_你需要形式的字符串「(R = 0.5,G =圖1b = 0)」這是得到它的一種方式。
COLORREF color = RGB(128,255,0);
stringstream ss;
ss << "(r=" << GetRValue(color)/255.0 << " g=" << GetGValue(color)/255.0 << " b=" << GetBValue(color)/255.0) << ")";
HC_Set_Color(ss.str());
你有沒有考慮,編譯器抱怨因爲COLORREF根本就不是一個常量字符,你不能把它當作一個字符嗎? –
你想如何表示字符串? –
'COLORREF'是'DWORD'的typedef,最常用的是'unsigned long'的typedef。即使你使用了正確的強制轉換,將其表示爲「const char *」也沒有什麼意義。 – AJG85