-1

我在我的项目中使用了一个字符串表,我想在其中存储 RGB 值。如何将 rgb 值从 LoadString char 转换为可用于 CreateSolidBrush 的 COLORREF 的值。

4

2 回答 2

1

根据 MSDNCOLORREF是一个DWORDtypedef。所以COLORREF cRef = RGB( 0, 0, 0 );也是有效的。我了解到您正在尝试的是:

const char *szTable[] = { "RGB( 255, 255, 255)", "RGB( 255, 0, 255)" }; //etc
COLORREF dwMyColor = szTable[0];

COLORREF从字符串表中获取对象。我认为这是你应该做的而不是字符串表:

COLORREF dwColor1 = RGB( 255, 0, 255 );
COLORREF dwTable[] = { 0xff00ff00, 0xffffffff, dwColor1 };

为什么还需要一个字符串表来存储 RGB 值?我猜还不够清楚

于 2012-07-12T19:57:46.453 回答
0

我用以下方法弄清楚了:

                    LoadString(g_hInstance,IDS_STRING151,rBuffer,256);
                    LoadString(g_hInstance,IDS_STRING152,gBuffer,256);
                    LoadString(g_hInstance,IDS_STRING153,bBuffer,256);
                    int r,g,b;
                    if(EOF == sscanf_s(rBuffer, "%d", &r))
                    {
                      //error
                    }
                    if(EOF == sscanf_s(gBuffer, "%d", &g))
                    {
                      //error
                    }
                    if(EOF == sscanf_s(bBuffer, "%d", &b))
                    {
                      //error
                    }
于 2012-07-12T20:32:55.270 回答