[C# 강좌 - 43] WIndow Form - 5 Graphic


Study/C#  2012. 10. 17. 14:28

안녕하세요. 개발자 명월입니다.


이번 포스팅에서는 Graphics 에 대해서 알아보도록하겠습니다.

Graphics 란 무엇인가 하면 해당 윈도우에 그림을 그리기 위한 디스플레이 장치(?) 입니다. C언어에서는 DC(Device Context) 라고 불리던 녀석입니다. 사용방법은 해당 핸들의 CreateGraphics메소드로 가져와 사용하면 됩니다.

 

먼저 MSDN 을 살펴 보도록 하겠습니다.

MSDN바로가기 - Graphics 클래스

 

 

MSDN 을 자세하 살펴보면 Draw 로 시작되는 접두어가 있고 Fill 로 시작하는 접두어로 시작하는 것으로 나뉘는데 Draw는 말그대로 그리는 것이고 Fill은 도형의 내부를 색칠하는 차이라고 볼 수 있겠습니다.

 

 

 

그럼 설명 보다는 예제로 살펴보도록 하겠습니다.

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

namespace blog20121017
{
    class Program : Form
    {
        static void Main(string[] args)
        {
            new Program().Show();
            Application.Run();
        }
        private Graphics g;
        public Program()
        {
            this.FormClosed += new FormClosedEventHandler(Program_FormClosed);
            this.Paint += new PaintEventHandler(Program_Paint);
        }
        public void Program_Paint(object sender, PaintEventArgs e)
        {
            g = this.CreateGraphics();
            Font _font = new System.Drawing.Font(new FontFamily("돋움"), 10, FontStyle.Bold);
            g.DrawString("test", _font, Brushes.Black, new PointF(0, 0));

            g.DrawRectangle(new Pen(Brushes.Black), new Rectangle(15, 15, 100, 100));
            g.FillRectangle(Brushes.White, new Rectangle(125, 15, 100, 100));
        }

        public void Program_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}

 

결과 화면 입니다.

 

DC를 자유자제로 사용하게 되면 윈도우 상에 자유자재로 그림도 그리고 게임도 만들 수 있습니다.

그러기 위해서는 DC 연습을 정말 많이 해보아야 합니다.

좌표계에 대한 인지도 확실히 하고 메시지를 타면서 그래픽이 깨지는 현상은 없는지 확인해야 할 사항이 많이 있습니다.

 

관련 설명을 링크 해 놓도록 하겠습니다.

관련 링크 - [C#] GDI Buffer

               [C#] GDI 좌표계

 

제 개발자 노트를 보면 퍼즐게임등 DC를 이용한 프로그램을 소개 해 놓았으니 살펴 보시면 도움이 됩니다.