本人正在做一个电子图章的软件,印章中的文字是环形的,不知怎么实现,哪位高手指点指点呀!!!!!

解决方案 »

  1.   

    一个一个字画,对每个字都设定好正确的倾斜角即可画倾斜的字,请参考
    http://vbcool.myrice.com/skill/skill3-3.html
      

  2.   

    这是旋转汉字的例子Option Explicit
    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 DeleteObject Lib "gdi32" (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 Sub Command1_Click()
        Dim lf          As LOGFONT
        Dim hFont       As Long
        Dim hOldFont    As Long
        Dim lX          As Long
        Dim lY          As Long
        
        Me.ScaleMode = vbPixels
        Picture1.ScaleMode = vbPixels
        lX = Picture1.Width / 2
        lY = Picture1.Height / 2
        
        lf.lfHeight = 32
        lf.lfFaceName = "宋体" & vbNullChar
        lf.lfEscapement = 300       '单位:1/10度,此处为30度
        hFont = CreateFontIndirect(lf)
        hOldFont = SelectObject(Picture1.hdc, hFont)
        TextOut Picture1.hdc, lX, lY, "旋转汉字", 8   '汉字长度为2,可以用lenb(strconv(str,vbfromunicode))获得输出字符的长度
        SelectObject Picture1.hdc, hOldFont
        DeleteObject hFont
        DeleteObject hOldFont
    End Sub对你的问题,计算好每个汉字的旋转角度,一个个输出就行了。注意并不是所有的字体都可以旋转的。