2014-03-06 2 views
1

나는 momentic IDE (기본 SDK)를 사용하여 BlackBerry 10 모바일 응용 프로그램을 개발 중입니다.16 진수 형식을 사용하여 컨테이너의 배경색을 변경하려면 어떻게합니까?

C++을 사용하여 컨테이너의 배경색을 변경하고 싶습니다. 그러나 불행하게도,이 관련 자료 [link, 당신은 단지 아래처럼 정의 할 수 있습니다 :

색상의
**Creating a color in C++:** 
Color c1 = Color::fromRGBA(0.5f, 1.0f, 0.2f, 0.8f); 
Color c2 = Color::fromARGB(0xff996633); 

, 내가 진수 형식 ("#XXXXXX")를 사용하고 싶습니다. 어느 누구도 이걸 안내 할 수 있니?

+0

방금 ​​찾고 계십니까 버퍼 객체로 문자열을 전달할 수 있습니다 다음 그러나 손 전 문자열에서 #을 제거해야 할 것이다 코드를 변환하는 코드 #로 시작하는 문자열과 6 자리의 16 진수를 int 값으로? QString은 모든 것을 할 것이고, mod와 toInt 메소드를 살펴볼 것이다. –

답변

2

Color c2 = Color::fromARGB(0xff996633);0x is c++ representation of a hex code의 16 진수를 사용합니다. FF (66)는 G이며이 될 것 (33)가 B 그래서 당신은 알파 없음 다음

와 16 진수 값 번호 000099을 사용하려는 경우

이며, 99은 R이고,는 A 구성 요소입니다

Color::fromARGB(0x00000099) 

다음 코드는 16 진수 값으로 문자열을 변환합니다, 당신은

#include <iostream> 
#include <sstream> 

int main() { 

    std::string hexString("#ffffff"); 
    hexString.erase(hexString.begin()); 

    std::istringstream buffer(hexString); 

    int value; 

    buffer >> std::hex >> value; 

    std::cout << std::hex << value; 
    return 0; 
} 
+0

이해 합니다만, 예를 들어 "#FFFFFF"로했을 때 문자열을 int로 변환해야합니까? –

+1

문자열을 16 진수로 변환하는 코드가 추가되었지만 문자열 앞에서 #을 제거해야합니다. 그러나 –

+0

@ user2072762 그게 효과가 있습니까? –