다음을 통해 공유


Visual Basic 6.0 사용자를 위한 글꼴 처리

업데이트: 2007년 11월

이 항목에서는 Visual Basic 6.0의 글꼴 처리 기술과 이에 해당하는 Visual Basic 2008의 글꼴 처리 기술을 비교하여 설명합니다.

개념적 차이

Visual Basic 6.0에서 글꼴은 폼과 컨트롤의 글꼴 속성이나 stdFont 개체로 처리됩니다.

Visual Basic 2008에는 단일 Font 개체인 System.Drawing.Font가 있습니다. 폼이나 컨트롤의 Font 속성에서는 Font 개체를 인수로 사용합니다.

글꼴 속성 설정

Visual Basic 6.0에서 글꼴 속성은 stdFont 개체를 할당하거나 컨트롤에 속성을 직접 설정하여 런타임에 설정할 수 있으며 이 두 가지 방법은 번갈아 사용할 수 있습니다.

Visual Basic 2008에서 컨트롤의 Font 속성은 런타임에 읽기 전용이므로 직접 설정할 수 없습니다. 속성을 설정할 때마다 새 Font 개체를 인스턴스화해야 합니다.

글꼴 상속

Visual Basic 6.0에서는 글꼴 속성을 각 컨트롤이나 폼에 대해 개별적으로 설정해야 합니다. stdFont 개체를 사용하면 프로세스가 단순화되기는 하지만 여전히 코드가 필요합니다.

그러나 Visual Basic 2008에서는 자식 개체의 글꼴 속성을 명시적으로 설정하지 않으면 부모의 글꼴 속성이 자동으로 상속됩니다. 예를 들어, 두 개의 lable 컨트롤이 있는 폼의 글꼴 속성을 Arial로 변경하면 lable 컨트롤의 글꼴도 Arial로 변경됩니다. 나중에 한 레이블의 글꼴을 Times Roman으로 변경하면 해당 폼의 글꼴을 다시 변경하더라도 레이블의 글꼴이 유지됩니다.

글꼴 호환성

Visual Basic 6.0에서는 이전 버전과의 호환성을 위해 래스터 글꼴을 지원하지만 Visual Basic 2008에서는 트루타입 글꼴과 오픈타입 글꼴만 지원합니다.

글꼴의 열거

Visual Basic 6.0에서는 Screen.FontCount 속성과 함께 Screen.Fonts 컬렉션을 사용하여 사용 가능한 화면 글꼴을 열거할 수 있습니다.

Visual Basic 2008에서는 Screen 개체를 더 이상 지원하지 않기 때문에 시스템에서 사용 가능한 글꼴을 열거하려면 System.Drawing.FontFamily 네임스페이스를 사용해야 합니다.

참고:

Visual Basic 6.0에서는 모든 형식의 글꼴을 열거합니다. 그러나 Visual Basic 2008에서는 트루타입 글꼴과 오픈타입 글꼴만 지원하고 다른 글꼴 형식은 열거하지 않습니다. 또한 Visual Basic 6.0에서는 글꼴 패밀리 내의 각 문자 집합 버전(예: Arial, Arial Baltic, Arial Greek)을 열거하지만 Visual Basic 2008에서는 글꼴 패밀리만 열거합니다.

글꼴에 대한 코드 변경 사항

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

글꼴 속성을 설정하는 방법에 대한 코드 변경 사항

다음 예제에서는 런타임에 글꼴 속성을 설정하는 방법을 보여 줍니다. Visual Basic 6.0에서는 속성을 컨트롤에 직접 설정할 수 있습니다. 그러나 Visual Basic 2008에서는 새 Font 개체를 만든 다음 속성을 설정할 때마다 이 개체를 컨트롤에 할당해야 합니다.

' Visual Basic 6.0 
' Set font properties directly on the control.
Label1.FontBold = True
' Create a stdFont object.
Dim f As New stdFont
' Set the stdFont object to the Arial font.
f.Name = "Arial"
' Assign the stdFont to the control's font property.
Set Label1.Font = f
' You can still change properties at run time.
Label1.FontBold = True
Label1.FontItalic = True
' Visual Basic
' Create a new Font object  Name and Size are required.
Dim f As New System.Drawing.Font("Arial", 10)
' Assign the font to the control
Label1.Font = f
' To set additional properties, you must create a new Font object.
Label1.Font = New System.Drawing.Font(Label1.Font, FontStyle.Bold Or FontStyle.Italic)

글꼴을 열거하는 방법에 대한 코드 변경 사항

다음 예제에서는 컴퓨터에 설치된 글꼴 목록으로 ListBox 컨트롤을 채우는 방법을 보여 줍니다.

참고:

Visual Basic 6.0에서는 모든 형식의 글꼴을 열거합니다. 그러나 Visual Basic 2008에서는 트루타입 글꼴과 오픈타입 글꼴만 지원하고 다른 글꼴 형식은 열거하지 않습니다. 또한 Visual Basic 6.0에서는 글꼴 패밀리 내의 각 문자 집합 버전(예: Arial, Arial Baltic, Arial Greek)을 열거하지만 Visual Basic 2008에서는 글꼴 패밀리만 열거합니다.

' Visual Basic 6.0 
Dim i As Integer
For i = 0 To Screen.FontCount – 1
   List1.AddItem Screen.Fonts(i)
Next i
' Visual Basic 
Dim ff As FontFamily
For Each ff In System.Drawing.FontFamily.Families
  listBox1.Items.Add(ff.Name)
Next

업그레이드 참고 사항

Visual Basic 6.0 응용 프로그램을 Visual Basic 2008로 업그레이드하면 새 Font 개체를 사용하도록 모든 글꼴 처리 코드가 수정됩니다.

Visual Basic 2008의 글꼴 상속으로 인해 응용 프로그램의 모양이 의도하지 않게 변경될 수 있습니다. 변환된 응용 프로그램에 폼 또는 컨테이너 수준에서 글꼴을 명시적으로 설정하는 코드가 있는지 확인해야 하며 필요한 경우에는 자식 컨트롤의 글꼴 중 해당 글꼴을 상속하지 않아야 하는 글꼴을 변경합니다.

업그레이드하는 경우 래스터 글꼴은 기본 오픈타입 글꼴인 Microsoft Sans Serif로 변환됩니다. 굵게, 기울임꼴 등과 같은 서식은 보존되지 않습니다. 자세한 내용은 OpenType 및 트루타입 글꼴만 지원합니다.를 참조하십시오.

응용 프로그램에 글꼴을 열거하는 코드가 포함된 경우에 래스터 글꼴은 업그레이드된 응용 프로그램에서 열거되지 않으며 개별 문자 집합 버전이 아닌 글꼴 패밀리가 열거됩니다.

참고 항목

참조

Font

FontFamily.Families

기타 리소스

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