C++でCOLORREFと文字列相互変換を実現する方法

COLORREFから文字列に変換したい場合は、sprintf関数を使用することができます。以下にサンプルコードを示します:

COLORREF color = RGB(255, 0, 0); // 红色

char strColor[9];
sprintf(strColor, "#%02X%02X%02X", GetRValue(color), GetGValue(color), GetBValue(color));

std::string strColorString = strColor;

std::cout << strColorString << std::endl; // 输出字符串 "#FF0000"

文字列をCOLORREFに変換するには、sscanf関数が使用できます。以下のサンプルコードを示します。

std::string strColorString = "#FF0000";

int red, green, blue;
sscanf(strColorString.c_str(), "#%02X%02X%02X", &red, &green, &blue);

COLORREF color = RGB(red, green, blue);

std::cout << std::hex << color << std::endl; // 输出16进制表示的COLORREF值 0x000000FF

これらのサンプルコードでは、Windows API の COLORREF 型を使用していること、および GetRValue、GetGValue、GetBValue などの関数を持っていることを想定しています。異なるグラフィックライブラリやプラットフォームを使用している場合は、コードを適切に調整してください。

bannerAds