Share via


Visual Basic 6.0 사용자를 위한 Shape 컨트롤

업데이트: 2007년 11월

Visual Basic 2008에는 Visual Basic 6.0의 Shape 컨트롤에 해당하는 요소가 없지만 Graphics 메서드를 사용하여 동일한 결과를 얻거나, Visual Basic Power Packs OvalShape 또는 RectangleShape 컨트롤을 사용할 수 있습니다. 이러한 컨트롤은 추가 기능으로 제공됩니다.

개념적 차이

Visual Basic 6.0에서 Shape 컨트롤은 디자인 타임에 폼에서 사각형, 원 및 기타 모양을 쉽게 그릴 수 있는 방법을 제공했습니다. Shape 컨트롤은 Windows 핸들이 없는 간단한 컨트롤로, HWnd라고도 합니다.

Visual Basic 2008에는 Shape 컨트롤에 해당하는 요소가 없으며 간단한 컨트롤도 더 이상 지원되지 않습니다. 그러나 디자인 타임이나 런타임에 여러 가지 방법으로 폼에 모양을 그릴 수 있습니다.

참고:

Visual Basic Power Packs 컨트롤로는 Line 및 Shape 컨트롤 대신 사용할 수 있는 LineShape, OvalShape 및 RectangleShape 컨트롤이 있습니다. 이러한 컨트롤은 Visual Basic 6.0 Line 및 Shape 컨트롤과 동작이 같을 뿐만 아니라 그라데이션 채우기, 런타임 선택 및 런타임 이벤트 같은 새로운 기능도 제공합니다.

Visual Basic Power Packs는 MSDN 웹 사이트의 Microsoft Visual Basic 2005 Power Packs 페이지에서 다운로드할 수 있습니다.

디자인 타임에서는 Label 컨트롤을 추가하고, Text 속성을 빈 문자열로 설정하고, BorderStyle 속성을 FixedSingle로 설정하고, BackColor, WidthHeight를 원하는 색과 차원으로 설정하여 폼에 정사각형이나 직사각형을 그릴 수 있습니다.

런타임에서는 Graphics 클래스로에서 새 개체를 만들고 해당 메서드를 호출하여 폼의 Paint 이벤트 처리기에서 직사각형, 타원 및 복잡한 모양을 그릴 수 있습니다.

Visual Basic 6.0에서는 Shape 컨트롤을 사용하여 모양을 그릴 수 있었습니다. 즉, 컨테이너에 Shape 컨트롤을 추가하여 PictureBox 또는 Frame 컨트롤과 같은 컨테이너 컨트롤의 맨 위에 모양을 그릴 수 있었습니다.

Visual Basic 2008에서는 컨테이너 컨트롤의 Paint 이벤트에서 Graphics 메서드를 호출하여 동일한 효과를 얻을 수 있습니다.

Shape 컨트롤에 대한 코드 변경 사항

다음 코드 예제에서는 Visual Basic 6.0의 코딩 기술과 Visual Basic 2008의 코딩 기술이 어떻게 다른지 보여 줍니다.

사각형을 그리는 방법에 대한 코드 변경 사항

다음 코드에서는 런타임에 폼에서 채워진 사각형을 그리는 방법을 보여 줍니다. Visual Basic 6.0 예제에서는 Shape 컨트롤을 사용하며, 디자인 타임에 Line 컨트롤이 추가된 것으로 가정합니다. Visual Basic 2008 예제에서는 Label 컨트롤과 Graphics 메서드를 사용하는 두 가지 방법을 보여 줍니다.

참고:

Visual Basic 6.0의 기본 측정 단위는 트윕이고 Visual Basic 2008의 기본 측정 단위는 픽셀입니다.

' Visual Basic 6.0
Private Sub Form_Load()
    ' Show a solid red rectangle 200 twips from the top left.
    Shape1.Top = 200
    Shape1.Left = 200
    Shape1.FillColor = vbRed
    Shape1.FillColor= vbFSSolid
    Shape1.BorderColor = vbRed
End Sub
' Visual Basic
' Using a Label control.
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
    Dim Shape1 As New System.Windows.Forms.Label
    ' Show a solid red rectangle 14 pixels from the top left.
    Shape1.Location = New System.Drawing.Point(14, 14)
    Shape1.Size = New System.Drawing.Size(200, 100)
    Shape1.BorderStyle = BorderStyle.None
    Shape1.BackColor = System.Drawing.Color.Red
    Shape1.Text = ""
    Controls.Add(Shape1)
End Sub
' Visual Basic
' Using Graphics methods.
Private Sub Form2_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    ' Draw a solid blue rectangle below the red rectangle.
    e.Graphics.FillRectangle(Brushes.Blue, 14, 120, 200, 100)
End Sub

원을 그리는 방법에 대한 코드 변경 사항

다음 코드에서는 런타임에 원을 폼에 그리는 방법을 보여 줍니다. Visual Basic 6.0 예제에서는 Shape 컨트롤을 사용하며, 디자인 타임에 Shape 컨트롤이 추가된 것으로 가정합니다. Visual Basic 2008 예제에서는 Graphics 메서드를 사용합니다.

참고:

Visual Basic 6.0의 기본 측정 단위는 트윕이고 Visual Basic 2008의 기본 측정 단위는 픽셀입니다.

' Visual Basic 6.0
Private Sub Form_Load()
    ' Draw a 1000 twip diameter red circle.
    Shape1.Top = 0
    Shape1.Left = 0
    Shape1.Height = 1000
    Shape1.Width = 1000
    Shape1.Shape = vbShapeCircle
    Shape1.BorderColor = vbRed
End Sub
' Visual Basic
    Private Sub Form3_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        ' Draw a 70 pixel diameter red circle.
        e.Graphics.DrawEllipse(Pens.Red, 0, 0, 70, 70)
    End Sub

업그레이드 참고 사항

Visual Basic 6.0 응용 프로그램을 업그레이드할 경우 Shape 컨트롤을 참조하는 코드는 Visual Basic Power Packs 라이브러리에 포함된 OvalShape 또는 RectangleShape 컨트롤을 사용하도록 업그레이드됩니다. 업그레이드할 때 Shape 컨트롤에 대한 참조가 발견되면 경고가 표시되고, 이 경우 라이브러리를 설치하고, 업그레이드한 프로젝트에서 이 라이브러리를 참조해야 합니다.

Visual Basic Power Packs는 MSDN 웹 사이트의 Microsoft Visual Basic 2005 Power Packs 페이지에서 다운로드할 수 있습니다.

참고 항목

개념

Visual Basic 6.0 사용자를 위한 그래픽