다이얼로그 배경에 그라데이션으로 배경색을 입혀보자
OnPaint() 함수에다가 처리하면 된다.
void XXXXX::OnPaint()
{
// 사각형 그라데이션 그리기
TRIVERTEX vert[2];
GRADIENT_RECT rect;
CRect rc;
GetClientRect(&rc);
// 그라데이션의 시작좌표를 명시한다.
vert[0].x = 0;
vert[0].y = 0;
// 그라데이션의 시작색상을 명시한다.
vert[0].Red = 0xF200;
vert[0].Green = 0xF200;
vert[0].Blue = 0xF200;
vert[0].Alpha = 0xF200;
// 그라데이션의 끝좌표를 명시한다.
vert[1].x = rc.right;
vert[1].y = rc.bottom;
// 그라데이션의 끝색상를 명시한다.
vert[1].Red = 0xF900;
vert[1].Green = 0xF900;
vert[1].Blue = 0xF900;
vert[1].Alpha = 0xF900;
rect.UpperLeft = 0;
rect.LowerRight = 1;
// 가로 방향의 시작지점부터 중앙지점까지 그라데이션 효과를 준다.
GradientFill(dc.m_hDC, vert, 2, &rect, 1, GRADIENT_FILL_RECT_V);
}
TRIVERTEX 의 값에 색상을 넣을때 우찌 넣어야 하냐?
예를들어 RGB(255,255,255)면
255를 16진수로 변경하면 0xff 죠~ 그럼 0xFF00 과 같은 값으로
150이라고 하면 이놈을 16진수로 변경하면 0x96, 이걸 TRIVERTEX 구조체에 값을 넣으러면 0x9600
typedef struct _TRIVERTEX
{
LONG x;
LONG y;
COLOR16 Red;
COLOR16 Green;
COLOR16 Blue;
COLOR16 Alpha;
}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
구조체가 위에처럼 생겼다.
16비트니까. 저렇게 값이 되는것이고
찾아보면 자동변환해주는 매크로도 있는거 같습니다~~ㅎ
정보는 공유되어야 한다 쭈욱~~
'Study > MFC' 카테고리의 다른 글
더블 버퍼링 처리 샘플 코드 (0) | 2015.11.27 |
---|---|
[MFC ] CDC 출력함수 정리 (0) | 2015.07.10 |
현재 시간 구하기 및 문자열 Format 변경 (0) | 2015.05.06 |
VisualStyle 변경하기(비쥬얼 스타일 변경) (0) | 2014.11.14 |
다이얼로그 배경색 바꾸기, 컨트롤 배경색 변경 (0) | 2014.11.13 |
댓글