티스토리 뷰

반응형

VB를

이용해서 윈도우 프로그래밍 해 본 사람들이라면

반드시 사용하게 되는 것이 바로

Color속성이다.

색상 속성을 전혀 핸들링하지 않는다고 하더라도

기본적으로 모든 컨트롤에는 고유의

배경색과 글자색 등이 정의되어 있고

이를 개발자가 사용하기에 편리하도록

개발툴의 속성창에서 색을 선택할 수 있게 되어있기 때문이다.
윈도우에서 기본적으로 자주 사용되는 컨트롤의 색상을 미리 정의해 놓은 것을 사용하는 것도 가능하고
색상표를 이용거나
더 나아가 사용자 정의 색상을 사용하는 것도 가능하다.
그런데 여기서 드는 한가지 의문점.

사용자 정의 색상을 선택할때는 색상, 채도, 명도의 값이나 RGB(빨,녹,파)값이 10진수로 되어 있는 반면

시스템 색상이나, 색상표를 이용할 때는 값이 모두 헥사(16진수)값으로 되어 있다는 점이다.

만약 기존에 정의되어 있는 색상의 RGB값을 미세하게 조정해서 사용하려고 한다면 좀 불편할 것이다.

사실 나도 이런 차이점으로 인해 예전에 개발을 하는 도중, 불편한 상황을 겪었던 적이 있었다.

그렇다면 Color속성의 헥사값을 RGB값으로 변환해서 사용하려면 어떻게 해야 할까.


가령 예를 들어 어느 컨트롤의 BackColor 속성의  RGB값을 변환해서 사용하려고 한다면

다음과 같은 코드를 사용해서 우리가 원하는 작업이 가능하다.

Dim BackColor as Long, R as Long, G as Long, B as Long

BackColor = 컨트롤.BackColor

R = BackColor And vbRed ''Red
G = (BackColor And vbGreen) / 256 ''Green
B = (BackColor And vbBlue) / 65536 ''Blue

이런식으로 간단히 변환하는 것이 가능하다.

그럼 이번에는 반대로 특정 RGB값을 헥사값으로 변환하려면?

간단하지만, 잠시 생각해 보길 바라며 답은 접어놓기로 하겠다. ^^








블로그코리아에 블UP하기
반응형
댓글
반응형
05-17 05:57
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함