home *** CD-ROM | disk | FTP | other *** search
- VERSION 1.0 CLASS
- BEGIN
- MultiUse = -1 'True
- END
- Attribute VB_Name = "ROTATEFONT"
- Attribute VB_Creatable = False
- Attribute VB_Exposed = False
- Option Explicit
-
- Private Const OUT_DEFAULT_PRECIS = 0
- Private Const OUT_STRING_PRECIS = 1
- Private Const OUT_CHARACTER_PRECIS = 2
- Private Const OUT_STROKE_PRECIS = 3
- Private Const OUT_TT_PRECIS = 4
- Private Const OUT_DEVICE_PRECIS = 5
- Private Const OUT_RASTER_PRECIS = 6
- Private Const OUT_TT_ONLY_PRECIS = 7
- Private Const OUT_OUTLINE_PRECIS = 8
-
- Private Const CLIP_DEFAULT_PRECIS = 0
- Private Const CLIP_CHARACTER_PRECIS = 1
- Private Const CLIP_STROKE_PRECIS = 2
- Private Const CLIP_MASK = &HF
- Private Const CLIP_LH_ANGLES = 16
- Private Const CLIP_TT_ALWAYS = 32
- Private Const CLIP_EMBEDDED = 128
-
- Private Const DEFAULT_QUALITY = 0
- Private Const DRAFT_QUALITY = 1
- Private Const PROOF_QUALITY = 2
-
- Private Const DEFAULT_PITCH = 0
- Private Const FIXED_PITCH = 1
- Private Const VARIABLE_PITCH = 2
-
- Private Const ANSI_CHARSET = 0
- Private Const DEFAULT_CHARSET = 1
- Private Const SYMBOL_CHARSET = 2
- Private Const SHIFTJIS_CHARSET = 128
- Private Const HANGEUL_CHARSET = 129
- Private Const CHINESEBIG5_CHARSET = 136
- Private Const OEM_CHARSET = 255
-
- ' Font Families
- '
- Private Const FF_DONTCARE = 0 ' Don't care or don't know.
- Private Const FF_ROMAN = 16 ' Variable stroke width, serifed.
-
- ' Times Roman, Century Schoolbook, etc.
- Private Const FF_SWISS = 32 ' Variable stroke width, sans-serifed.
-
- ' Helvetica, Swiss, etc.
- Private Const FF_MODERN = 48 ' Constant stroke width, serifed or sans-serifed.
-
- ' Pica, Elite, Courier, etc.
- Private Const FF_SCRIPT = 64 ' Cursive, etc.
- Private Const FF_DECORATIVE = 80 ' Old English, etc.
-
- ' Font Weights
- Private Const FW_DONTCARE = 0
- Private Const FW_THIN = 100
- Private Const FW_EXTRALIGHT = 200
- Private Const FW_LIGHT = 300
- Private Const FW_NORMAL = 400
- Private Const FW_MEDIUM = 500
- Private Const FW_SEMIBOLD = 600
- Private Const FW_BOLD = 700
- Private Const FW_EXTRABOLD = 800
- Private Const FW_HEAVY = 900
-
- Private Type LOGFONT
- lfHeight As Long
- lfWidth As Long
- lfEscapement As Long
- lfOrientation As Long
- lfWeight As Long
- lfItalic As Byte
- lfUnderline As Byte
- lfStrikeOut As Byte
- lfCharSet As Byte
- lfOutPrecision As Byte
- lfClipPrecision As Byte
- lfQuality As Byte
- lfPitchAndFamily As Byte
- lfFaceName As String * 32
- End Type
-
- Private Declare Function CreateFontIndirect Lib "gdi32" _
- Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
-
- Private Declare Function SelectObject Lib "gdi32" _
- (ByVal hDC As Long, ByVal hObject As Long) As Long
-
- Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" _
- (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, _
- ByVal lpString As String, ByVal nCount As Long) As Long
-
- Private Declare Function DeleteObject Lib "gdi32" _
- (ByVal hObject As Long) As Long
-
- Private font As LOGFONT
-
- Private Sub Class_Initialize()
- font.lfHeight = 10
- font.lfWidth = 0
- font.lfEscapement = 0
- font.lfPitchAndFamily = FF_MODERN
- font.lfCharSet = ANSI_CHARSET
- font.lfQuality = PROOF_QUALITY
- font.lfWeight = FW_NORMAL
- font.lfFaceName = ""
- End Sub
-
- Public Sub setPointSize(ps As Long)
- font.lfHeight = ps
- End Sub
-
- Public Sub setAngle(angle As Long)
- font.lfEscapement = angle * 10
- End Sub
-
- Public Sub dispText(hDC As Long, text As String, x As Long, y As Long)
- Dim hFont As Long
- Dim hOldFont As Long
-
- hFont = CreateFontIndirect(font)
- hOldFont = SelectObject(hDC, hFont)
- TextOut hDC, x, y, text, Len(text)
- hFont = SelectObject(hDC, hOldFont)
- DeleteObject hFont
- End Sub
-
-
-