White Whale Studio

[GDI] C# GDI 탐구 - 시작 본문

IT Engineering/C#.net

[GDI] C# GDI 탐구 - 시작

glorymind 2016. 7. 12. 16:14
반응형

업종에 따라서 GDI를 사용할일이 있는데, 저도 그런 날이 오고야 말았습니다.

아직 시작은 하지 않았지만, 어느정도 정리하는 차원에서 GDI+ (Graphic Design Interface)를 탐구해보겠습니다.



기본적으로는 MSDN을 참고하시기 바랍니다.



일단 우선적으로 저는 Winform을 기반으로 작업을 합니다.


Form 혹은 컨트롤 중에서 Panel의 이벤트 속성에 보면 Paint라는 속성이 있는데, 이 부분에서 추가되는 선, 도형, 이미지 등을 그려주게 됩니다.  따라서,


private void panelControl1_Paint(object sender, PaintEventArgs e)


이런 형태의 메서드가 정의되게 됩니다.


우선 기본적으로 알아두셔야할 점은


Invalidate()라는 메서드를 통해서 화면을 지우고 다시 그려주는데


만약 고정된 이미지를 한번만 출력하고 말것이 아니라면 화면이 갱신될때마다 새로 그려주어야 한다는 점입니다.


예를 들어 그림판에서 순서대로 원, 삼각, 사각을 그리는 경우


e.Graphics.DrawEllipse(this.gm.NormalPen, figureitem.Rectangle);                    


이렇게 했다고 끝나는 것이 아니라 삼각형을 그릴때 이전에 그려졌던 원을 다시 그려줘야된다는 의미입니다.


반복해서 그려주는 프로세스는 각자 고민을 해보시기 바랍니다.


또한, GDI 작업시에 깜빡이는 현상이 발생하는데 이때 이것을 해결하는 방법이 더블 버퍼링 이라는 것입니다.

사용방법은 생성자에다가


1
2
3
4
         public ImageButton()
        {
            this.DoubleBuffered = true;
        }
cs

 위와 같이 한줄만 추가해주시면 됩니다.


더블버퍼링 관련 내용은 아래의 MSDN을 참조바랍니다.

앞으로는 포스팅에서는 순차적으로 마우스로 드래그 하여 도형을 그릴 수 있는 단계까지 진행해보도록 하겠습니다.

반응형

'IT Engineering > C#.net' 카테고리의 다른 글

[GDI] C# GDI 탐구 - 마우스로 도형 그리기 - 1  (2) 2016.08.03
[GDI] C# GDI 탐구 - 도형 그리기  (0) 2016.08.03
Delegate & Event / 델리게이트와 이벤트  (0) 2016.06.23
Delegate / 대리자  (0) 2016.06.23
EventArgs  (0) 2016.06.23
Comments