如何在pictureBox控件中画出顺时针旋转90度的英文字母

解决方案 »

  1.   

    Option Explicit
    Private Const LF_FACESIZE = 32Private 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(1 To LF_FACESIZE) As Byte
    End Type
    Private Const GB2312_CHARSET = 134
    Private lngPen As Long
    Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal i As Long, ByVal u As Long, ByVal s As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As LongPrivate Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) 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 SelectObject Lib "gdi32" (ByVal hDc As Long, ByVal hObject As Long) As Long
    Private Declare Function SetTextColor Lib "gdi32" (ByVal hDc As Long, ByVal crColor As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Sub Command1_Click()
         Dim lF As LOGFONT
        
         With lF
            .lfEscapement = 2700
            .lfCharSet = GB2312_CHARSET
        End With
        Dim Ft As Long
        
        Ft = CreateFontIndirect(lF)
        SelectObject Picture1.hDc, Ft
        SetTextColor Picture1.hDc, vbRed
        
        TextOut Picture1.hDc, 20, 10, "A", 1
        DeleteObject Ft
        
    End Sub