印刷文字を回転させるには CreateFontIndirect() を使用する.
Private Sub Form_MouseDown _
(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Dim fname() As Byte
Dim font1 As Long, ret As Long
With fnt
.lfHeight = 20 '文字高Pixel単位
.lfWidth = 0 '文字の平均幅
.lfEscapement = 900 '角度 * 10
'
.lfWeight = FW_NORMAL '文字の太さ
' .lfItalic = 0 '斜体
' .lfUnderline = 0 '下線
' .lfStrikeOut = 0 '打ち消し線
' .lfCharSet = 0 '文字セット
' .lfOutPrecision = 0 '出力精度
' .lfClipPrecision = 0 'クリッピング精度
' .lfQuality = 0 '出力品質
' .lfPitchAndFamily As Byte 'フォント名
'***** フォント名をバイト配列に変換
fname() = StrConv("標準明朝", vbFromUnicode)
For i = 0 To UBound(fname)
.lfFaceName(i) = fname(i)
Next
End With
font1 = CreateFontIndirect(fnt) '関数で作ったフォントを
ret = SelectObject(Form1.hdc, font1) 'hdcに適用
Form1.CurrentX = X
Form1.CurrentY = Y
Form1.Print "回転文字"
ret = DeleteObject(font1) 'フォント削除
End Sub
印刷する場合には,
ret = SelectObject( Printer.hdc, font1)
とする.
参照