如何在picturebox 中显示围绕着圆形的文字??
本人正在做一个电子图章的软件,印章中的文字是环形的,不知怎么实现,哪位高手指点指点呀!!!
这是旋转汉字的例子
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
对你的问题,计算好每个汉字的旋转角度,一个个输出就行了。注意并不是所有的字体都可以旋转的。