有没有这样的功能?

hzc1 2006-08-25 02:02:54
有没有可以将文字反过来的功能,也就是文字的镜像。
我现在知道的也就是用StretchBlt来实现,还有没有其它的方法。
...全文
269 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzc1 2006-08-29
  • 打赏
  • 举报
回复
再顶
xiaolingshi 2006-08-29
  • 打赏
  • 举报
回复
借助FLASH
hzc1 2006-08-28
  • 打赏
  • 举报
回复
定义字符集可以达到我要的效果吗?如何做,最好能将代码告之,谢谢~~~~~
leongwong 2006-08-28
  • 打赏
  • 举报
回复
楼主作图章吧?自己定义个字符集吧!
hzc1 2006-08-28
  • 打赏
  • 举报
回复
谢谢各位的关注.
我需要的效果不是字符的排列顺序的翻转,而是单个字符的翻转。如“p”=>“q"
hzc1 2006-08-28
  • 打赏
  • 举报
回复
再关注一吓子行不?
熊孩子开学喽 2006-08-26
  • 打赏
  • 举报
回复
应该是使用自定义字体的方法可以作到。
以前我找到过这样的资料,可以将字体定义成任何角度的。应该可以符合楼主的需要。
下面这一段代码是VB区的老大给出来的,我转抄一下:


Option Explicit

#If Win32 Then
Private Type LOGFONT_TYPE
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_TYPE) As Long
#Else
Private Type LOGFONT_TYPE
lfHeight As Integer
lfWidth As Integer
lfEscapement As Integer
lfOrientation As Integer
lfWeight As Integer
lfItalic As String * 1
lfUnderline As String * 1
lfStrikeOut As String * 1
lfCharSet As String * 1
lfOutPrecision As String * 1
lfClipPrecision As String * 1
lfQuality As String * 1
lfPitchAndFamily As String * 1
lffacename As String * 32
End Type
Private Declare Function CreateFontIndirect Lib "GDI" (lpLogFont As Any) As Integer
#End If
#If Win32 Then
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
#Else
Private Declare Function SelectObject Lib "GDI" (ByVal hdc As Integer, ByVal hObject As Integer) As Integer
Private Declare Function DeleteObject Lib "GDI" (ByVal hObject As Integer) As Integer
#End If

Private Sub Command1_Click()
Picture1.Cls
Picture1.fontname = "arial"
Picture1.Fontsize = 40
Picture1.FontBold = True
TextCircle Picture1, "CSDN-libralibra", Picture1.ScaleWidth / 2, Picture1.ScaleHeight, Picture1.ScaleHeight * 0.8, -1

End Sub

Private Sub TextCircle(obj As Object, txt As String, X As Long, Y As Long, radius As Long, startdegree As Double)
Dim foo As Integer, TxtX As Long, TxtY As Long, checkit As Integer
Dim twipsperdegree As Long, wrktxt As String, wrklet As String, degreexy As Double, degree As Double
twipsperdegree = (radius * 3.14159 * 2) / 360
If startdegree < 0 Then
Select Case startdegree
Case -1
startdegree = Int(360 - (((obj.TextWidth(txt)) / twipsperdegree) / 2))
Case -2
radius = (obj.TextWidth(txt) / 2) / 3.14159
twipsperdegree = (radius * 3.14159 * 2) / 360
End Select
End If


For foo = 1 To Len(txt)
wrklet = Mid$(txt, foo, 1)
degreexy = (obj.TextWidth(wrktxt)) / twipsperdegree + startdegree
DegreesToXY X, Y, degreexy, radius, radius, TxtX, TxtY
degree = (obj.TextWidth(wrktxt) + 0.5 * obj.TextWidth(wrklet)) / twipsperdegree + startdegree
RotateText 360 - degree, obj, obj.fontname, obj.Fontsize, (TxtX), (TxtY), wrklet
wrktxt = wrktxt & wrklet
Next foo
End Sub

Private Sub DegreesToXY(CenterX As Long, CenterY As Long, degree As Double, radiusX As Long, radiusY As Long, X As Long, Y As Long)
Dim convert As Double

convert = 3.141593 / 180
X = CenterX - (Sin(-degree * convert) * radiusX)
Y = CenterY - (Sin((90 + (degree)) * convert) * radiusY)

End Sub

Private Sub RotateText(Degrees As Integer, obj As Object, fontname As String, Fontsize As Single, X As Integer, Y As Integer, Caption As String)
Dim RotateFont As LOGFONT_TYPE
Dim CurFont As Long, rFont As Long, foo As Long

RotateFont.lfEscapement = Degrees * 10
RotateFont.lffacename = fontname & Chr$(0)
If obj.FontBold Then
RotateFont.lfWeight = 800
Else
RotateFont.lfWeight = 400
End If
RotateFont.lfHeight = (Fontsize * -20) / Screen.TwipsPerPixelY
rFont = CreateFontIndirect(RotateFont)
CurFont = SelectObject(obj.hdc, rFont)

obj.CurrentX = X
obj.CurrentY = Y
obj.Print Caption

'ÊͷŶÔÏó
foo = SelectObject(obj.hdc, CurFont)
foo = DeleteObject(rFont)

End Sub

楼主新建个工程,放一个按钮和一个PICTURE,就可以运行看效果了。

实在不好意思,我忘记是VB区的哪一个老大了,哈哈,罪过罪过。
xiaolingshi 2006-08-26
  • 打赏
  • 举报
回复
楼主要的是这种效果吧
Function reversestring(revstr As String) As String
' revstr: 要翻转的字符串
' 返回值:翻转后的字符串
Dim doreverse As Long
reversestring = ""
For doreverse = Len(revstr) To 1 Step -1
reversestring = reversestring & Mid$(revstr, doreverse, 1)
Next
End Function
YaDa 2006-08-26
  • 打赏
  • 举报
回复
刻图章?制泥版?
缪军 2006-08-26
  • 打赏
  • 举报
回复
楼主要的是 q -> p 的效果
关注
hzc1 2006-08-26
  • 打赏
  • 举报
回复
非常感谢关注。
我想要的效果是这样的,不是字的任意角度输出而是字的水平翻转。
可惜CSDN上不能放图片~~~~就像“话”==》“舌讠”大致这样子。
谢谢~~~~~
LGQ1001 2006-08-25
  • 打赏
  • 举报
回复
StrReverse可以的
StrReverse("123")="321"
StrReverse("一二三")="三二一"
hzc1 2006-08-25
  • 打赏
  • 举报
回复
没人知道吗?
酷窗版演示:http://www.edd8.com/bbs/index.asp?style=0 简装版演示:http://www.edd8.com/bbs/index2.asp 一点点论坛(http://www.edd8.com/bbs)使用说明 欢迎大家下载使用一点点论坛,在使用论坛前,请认真阅读以下内容: ===================================== 论坛:一点点论坛(http://www.edd8.com/bbs) 主页:一点点星空驿站(http://www.edd8.com/) 站长:叮咚虫(e_Mail:b_li@163.com) 版本:EDD8 Ver.2003 for DV =====================================   一点点论坛是建立在动网论坛基础上的ASP互动论坛,从动网Var5.b109开始论坛结构便开始脱离动网,与动网升级一起,本论坛本身也同时实现了动网新的功能,到519的发布,本人常得论坛本身已功能基本完善,所以决定与动网完全脱离,到动网Final的出现,本论坛也决定不再跟随动网升级了,本人全面对原来的论坛进行了代码优化和版面重排,并升级了部分功能代码,完成了现在这样的论坛。使论坛已经完全脱离了动网,以后也不可以随动网一起升级了!   所以选择本论坛的朋友请先明白,如果采用了本论坛的数据结构,以后就不可以和动网一起升级了,而现有的动网Final版的数据库和本论坛的数据库也是不兼容的!对于动网V5.b519的用户,本人同时在压缩包里提供了升级文件,可以把你519的数据库升级成和本论坛一致的数据结构!   由于一些朋友催得较急,部分功能还是没有完善的(但不会出错),我以后也会给出升级包的。所以决定使用本论坛的朋友,请一定要到本站论坛的“站务办公室”进行指定的留言签名,以好我第一时间通知大家升级!   论坛中使用到的部分插件并没有一同奉上,原因是我还没完成代码优化,请过几天到我的论坛上下载。可以下载的插件主要有:社区银行、网络拳皇、可乐吧台球、五子棋等等…… ===================================== 主要特色功能说明: ◎ 双版面设计,用户可以根据不同爱好选择不同的版式(酷窗版和精简版),系统会记录用户的选择,不用重复选择,也不会出现版面混淆等现象; ◎ 发贴回贴互动功能,给用户随机的互动事件,增加用户的参与兴趣; ◎ 增强的UBB代码和JS代码,新增的买卖贴、定时贴等十几种特色功能UBB代码; ◎ 贴子功能加强,增加互动鲜花、鸡蛋、金钱、炸弹等功能,并保存数据作为用户在论坛的人缘依据; ◎ 不好说了,等你去发掘吧,不然又说我叫卖了…… ====================================== 安装说明: 解压就可以了,数据库名称和路径有变动时不要忘了在CONN。ASP中进行相应修改。 (注意:当论坛中一个贴子也没有时,论坛明星会出错,但当你加入贴子后就正常了,大家不要惊慌) 升级:(对519),解压后把你的原519数据库覆盖现数据库,再执行根目录下的UPDATE。ASP文件就行了,如果没有升级成功的提示,说明你的数据不能进行升级! (注意:数据库的升级应做了备份,并在本机上进行!) ====================================== 最后一点说明: 由于论坛本来是打算自己用的,所以在设计的过程中部分变量已经去掉,不能从后台设置了(如表格边框),请大家最好保持现有的风格。 如果还不问题,可以到我的论坛上来交流。??注意,由于本人时间不限,技术支持是有限的,请不要过于强求!

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧