점과 선 그리기
점찍기
* 지정된 x, y 좌표에 특정 색상의 점 찍기
SetPixel ( hdc, x, y, crColor );
// hdc : 디바이스 컨텍스트 핸들, x, y : 좌표, crColor : COLORREF 타입으로 색상 지정
* 특정 좌표점의 색상 리턴
crColor = GetPixel (hdc, x, y);
직선
윈도우즈에서는 직선, 타원 곡선, 베지어 스플라인(Besizer spline)을 그릴 수 있다.
* 윈도우즈 9x 계열의 일곱개의 선 그리기 함
LineTo() 직선을 그린다.
Polyline(), PolylineTo() 일련의 연결된 직선을 그린다.
PolyPolyline() 일련의 연결된 직선을 여러 개 그린다.
Arc() 타원 곡선을 그린다.
PolyGezier(), polyBezierTo() 베지어 스플라인을 그린다.
* 직선 그리기
MoveToEx (hdc, xBeg, yBeg, NULL); // 직선의 시작점 지정
LineTo (hdc, xEnd, yEnd); // 직선의 끝 점 지정
(*참고 : 현재의 위치 값이 필요하다면, GetCurrentPositionEx (hdc, &pt); )
[ 예제 SINEWAVE.C (첨부) ]
경계 상자 함수
Rectangle(), Ellipse(), RoundRect(), Chord(), Pie() 는 엄밀하게 보면 선을 그리는 함수가 아니다.
물론 선을 그리지만 도형 내부를 현재 선택된 브러시로 채우기도 한다.
위에 열거한 함수들은 직사각형 형태의 '경계상자(bounding box - 객체를 둘러싸는 상자)'로부터 만들어진다.
내장 펜 사용하기
윈도우즈는 디바이스 컨텍스트에 현재 선택된 펜을 이용하여 선을 그린다.
hPen = GetStockObject (WHITE_PEN); // 펜 핸들 얻기
SelectObject (hdc, hPen); // 펜 선택!
SelectObject(hdc, GetStockObject(WHITE_PEN)); // 위와 동일한 역할
SelectObject()는 이전에 디바이스 컨택스트에 선택되어 있던 펜에 대한 핸들을 리턴한다.
hPen = SelectObject ( hdc, GetStockObject(WHITE_PEN ) );
SelectObject (hdc, hPen); // 이전의 펜
댓글 없음:
댓글 쓰기