//将颜色字符串(#XXXXXX)转换为颜色值 COLORREF HexToColor(const char* strSource) { COLORREF nTemp=0; strSource=strchr(strSource,'#'); if (!strSource) return 0; strSource++; for(int i = 0; i < strlen(strSource); i++) { if(strSource[i] > 'g' || strSource[i] < '0' || ( strSource[i] > '9' && strSource[i] < 'A' ) ) { return 0; } else { COLORREF nDecNum; switch(strSource[i]) { case 'a': case 'A': nDecNum = 10; break; case 'b': case 'B': nDecNum = 11; break; case 'c': case 'C': nDecNum = 12; break; case 'd': case 'D': nDecNum = 13; break; case 'e': case 'E': nDecNum = 14; break; case 'f': case 'F': nDecNum = 15; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': nDecNum = strSource[i] - '0'; break; default: return 0; } nDecNum<<=(i*4); nTemp |= nDecNum; } } LPBYTE pVal=(LPBYTE)&nTemp; for (i=0;i<4;i++) { pVal[i] = pVal[i]>>4 | pVal[i]<<4; } return nTemp; }