Win32
2010.01.27 18:58

그라디언트 그리는 방법

Lyn
조회 수 22943 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
볼포에 올려놨던거 옮겨옴
 
필요한 변수
  DCRect : GRADIENT_RECT;
  Vertex : array[0..1] of TTriVertex;
코드
  Vertex[0].x     := 0;
  Vertex[0].y     := 0;
  Vertex[0].Red   := 104 shl 8;
  Vertex[0].Green := 104 shl 8;
  Vertex[0].Blue  := 173 shl 8;
  Vertex[0].Alpha := 0;
 
  Vertex[1].x     := TitleBar.Width;
  Vertex[1].y     := TitleBar.Height;
  Vertex[1].Red   := 165 shl 8;
  Vertex[1].Green := 165 shl 8;
  Vertex[1].Blue  := 209 shl 8;
  Vertex[1].Alpha := 0;
 
  DCRect.UpperLeft := 0;
  DCRect.LowerRight := 1;
 
  GradientFill(TitleBarImage.Canvas.Handle, @Vertex, 2, @DCRect, 1, GRADIENT_FILL_RECT_V);
 
설명 :
처음으로 TTriVertex 형태의 배열이 필요하다.
0번째는 시작색,위치 1번째는 종료색,위치를 지정한다.
 
색을 지정할때 RGB 값에 shl 8 을 하는것에 주의
 
 
DCRect.UpperLeft := 0;
DCRect.LowerRight := 1; 여기 두줄은 뭐하는지 모르겠다.. 그냥 고정시켜둬라
 
자 마지막으로 GradientFill 함수를 사용하여 그려보자.
첫번째 인자로는 DC의 핸들이 필요하다.나는 Panel 에 TImage 하나 올려두고 TImage 의 Canvas 가 가지고 있는 Handle 을 참조하기로 했다.
 
두번째 인자로는 아까 열심히 속성 적어놓은 Vertex 배열의 포인터가 필요하다
 
3번째 인자는 모르겠다. 그냥 2 넣어라
4번째 인자는 아까 만들었던 GRADIENT_RECT 타잎의 포인터가 필요하다
 
5번째인자도 모르겟다 그냥 1 넣어라
 
마지막 인자는 GRADIENT_FILL_RECT_V, GRADIENT_FILL_RECT_H 두 종류가 있다. 각각 가로, 세로 방향을 지정한다.
 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
60 Pure C++ int 의 크기 Lyn 2010.04.08 23158
59 기타 VirtualBox VDI 이미지를 VMDK, VHD 로 변환하기 Lyn 2010.03.14 44615
58 기타 VirtualBox 가변크기 하드디스크 용량 줄이기 Lyn 2010.03.10 30413
57 Pure C++ 유니코드와 wchar_t 의 주의점. Lyn 2010.03.09 24376
56 Pure C++ 문자열 -> 실수 변환함수 컴파일러별 차이. Lyn 2010.02.19 23570
55 Other DBMS SQLite 에서 Top 쿼리 쓰는 법 Lyn 2010.02.19 33137
54 Win32 SpinLock 은 절대 서버에서 쓰지 마라! Lyn 2010.02.09 25726
53 Addon 소개 GExpert 델파이 용 애드온 Lyn 2010.02.01 24997
52 Addon 소개 Visual Assist X. VS용 플러그인 Lyn 2010.02.01 23508
51 Addon 소개 컴파일 속도를 올려주는 애드온 Lyn 2010.02.01 21689
50 Delphi / BCB #pragma once Lyn 2010.02.01 30954
» Win32 그라디언트 그리는 방법 Lyn 2010.01.27 22943
48 Visual C++ MFC 토큰 쪼개는 함수 Lyn 2010.01.14 25792
47 Win32 VC에서 Boost 를 편하게 설치 하고 싶을경우. Lyn 2010.01.06 22499
46 Pure C++ C++ 기본 객체 유니코드 지역 설정(한국어) Lyn 2010.01.03 22777
45 Win32 NonBlocking IO 와 Overlapped IO의 차이점 Lyn 2010.01.03 22153
44 Visual C++ Visual Studio 툴 사용법 있는곳. Lyn 2009.12.31 26893
43 Win32 Editbox 캐럿 위치 가져오기 Lyn 2009.12.28 25665
42 Pure C++ 배열포인터를 이용한 다차원 배열 생성 Lyn 2009.12.24 21328
41 Win32 Windows에서 패킷스니핑 할 때 주의할점 Lyn 2009.12.16 37254
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6