사각형 그리기
Graphics 클래스의 DrawRectangle() 메서드를 이용하면 손쉽게 그릴 수 있으며, 펜의 속성을 변경하여 사각형의 모서리가 각진 것과 둥근 것을 그릴 수 있다. 다음은 둥근 모서리가 확연히 드러나게 펜의 두께를 20으로 하였다.
void CGdiPlusDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
Pen BlackPen(Color(255,0,0,0), 20.0f);
graphics.DrawRectangle(&BlackPen, 30,30,100,100);
BlackPen.SetLineJoin(LineJoinRound);
graphics.DrawRectangle(&BlackPen, 170,30,100,100);
}
원 그리기
DrawEllipse() 메서드를 이용하여 원과 타원을 그릴 수 있으며 다음 코드는 원과 폭이 두 배인 타원을 그린다.
void CGdiPlusDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
Pen BlackPen(Color(255,0,0,0), 10.0f);
graphics.DrawEllipse(&BlackPen, 30,30,100,100);
graphics.DrawEllipse(&BlackPen, 150,30,200,100);
}
원호와 부채꼴 그리기
원 그리기가 사각형 그리기와 비슷한 것처럼 원호나 부채꼴도 그리는 방법이 유사하다. 그리고 원호나 부채꼴의 시작과 끝을 명시하는 방법도 사각형을 그릴 때처럼 시작 각도를 기준으로 벌어진 각도를 명시한다. 다음은 원 하나를 그리고 여기에 원호와 부채꼴을 겹쳐서 그린다.
void CGdiPlusDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
Pen BlackPen(Color(255,0,0,0), 2.0f);
Pen GrayPen(Color(255,192,192,192), 15.0f);
graphics.DrawEllipse(&GrayPen, 30,30,150,150);
graphics.DrawArc(&BlackPen, 30,30,150,150, 0.0f, 90.0f);
graphics.DrawPie(&BlackPen, 30,30,150,150, 180.0f, 90.0f);
// 수평선을 기준으로 시계 방향으로 각도가 증가하는데 0.0f와 90.0f 의 의미는
// 0 에서 원호가 시작해서 90 만큼 원호를 그린 후 끝난다는 의미가 된다.
}
다각형 그리기
DrawPolygon() 메서드를 이용하면 사각형이나 원을 제외한 나머지 다각형을 그릴 때 유용하다. 이 함수의 인자나 사용법은 DrawCurve() 함수와 거의 같다. 다음 코드는 'ㄱ'자 모양의 다각형을 그린 예이다.
void CGdiPlusDemoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
Pen BlackPen(Color(255,0,0,0), 2.0f);
Point pts[6] = {
Point(30,30),
Point(180,30),
Point(180,130),
Point(130,130),
Point(130,80),
Point(30,80)
};
graphics.DrawPolygon(&BlackPen, pts, 6);
}
'Windows > MFC' 카테고리의 다른 글
GDI+ , 외부 이미지 파일의 처리 (Image Class) (0) | 2011.12.13 |
---|---|
GDI+ , 브러쉬(Brush) (0) | 2011.12.13 |
GDI+ , 펜과 직선 그리기, 꺽임/끝 부분 처리, 곡선과 안티 에일리어싱 (0) | 2011.12.13 |
데이터베이스 :: OLE-DB (0) | 2011.11.23 |
MFC 소켓 프로그래밍 ( TCP/IP 이용 ) (0) | 2011.11.20 |