다음 결과 이미지이다.
다음은 소스이다
' 논리적 폰트 생성 문자열을 회전하면서 출력한다
Option Explicit
Const FW_NORMAL = 400
Const DEFAULT_CHARSET = 1
Const OUT_DEFAULT_PRECIS = 0
Const CLIP_DEFAULT_PRECIS = 0
Const PROOF_QUALITY = 2
Const DEFAULT_PITCH = 0
Const LOGPIXELSY = 90
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal nHeight As Long, ByVal nWidth As Long, ByVal nEscapement As Long, ByVal nOrientation As Long, ByVal fnWeight As Long, ByVal fdwItalic As Boolean, ByVal fdwUnderline As Boolean, ByVal fdwStrikeOut As Boolean, ByVal fdwCharSet As Long, ByVal fdwOutputPrecision As Long, ByVal fdwClipPrecision As Long, ByVal fdwQuality As Long, ByVal fdwPitchAndFamily As Long, ByVal lpszFace As String) As Long
Private Declare Function MulDiv Lib "kernel32" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Sub Form_Load()
Dim Angle As Long ' 각도
With Picture1
.AutoRedraw = True
For Angle = 0 To 350 Step 30
DeleteObject SelectObject(.hdc, CreateMyFont(24, Angle))
.CurrentX = .ScaleWidth / 2
.CurrentY = .ScaleHeight / 2
Picture1.Print "테스트"
Next Angle
End With
End Sub
' nSize는 포인트 단위이다.
Private Function CreateMyFont(ByVal nSize As Integer, ByVal nDegrees As Long) As Long ' 논리 폰트를 생성한다.
CreateMyFont = CreateFont(-MulDiv(nSize, GetDeviceCaps(Me.Hdc, LOGPIXELSY), 72), 0, nDegrees * 10, 0, FW_NORMAL, False, False, False, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, "Times New Roman")
End Function
예에서서는 논리 폰트를 생성하고, DC에 폰트를 할당하여, 해당 개체의 Print 메소드를 사용해서 결과를 얻었다.
'API' 카테고리의 다른 글
Beep를 사용한 PC 스피커로 음악 연주 (0) | 2011.09.23 |
---|---|
CreateFont를 사용한 문자열 표시 각도 변환(메모리 사용후 대상 DC에 복사) (0) | 2011.09.22 |
윈도우의 모든창 최소화하기 (0) | 2011.09.22 |
CreateFontIndirect를 사용한 문자열 세로 출력 (0) | 2011.09.22 |
GetFileVersionInfo를 사용한 파일 버전 정보 얻기 (0) | 2011.09.21 |