2012-07-12 75 views
-1

我在我的項目中使用字符串表,我想存儲RGB值。如何將rgb值從LoadString char轉換爲可用於COLORREF for CreateSolidBrush的東西。字符串表RGB值

+2

你需要將字符串轉換爲整數? – triclosan 2012-07-12 19:32:21

+0

是的,類似clrbuffer =「RGB(255,255,255)」轉換爲與CreateSolidBrush(clrbuffer)一起使用。除「RGB(255,255,255)」之外將是整數值而不是字符串 – eric 2012-07-12 19:40:29

+0

有些東西不太清楚。這些字符串來自哪裏,你可以自由選擇最容易轉換的格式嗎? – 2012-07-12 19:42:45

回答

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 
        } 
1

根據MSDN COLORREF是一個DWORD typedef。所以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值呢?目前尚不清楚的是我猜

+0

只是我正在處理的一個項目,需要我使用字符串表而不是simpy使用CreateSolidBrush(RGB(255,255,255)); – eric 2012-07-12 20:04:05