如何按一定的角度输出文字

expert2000 2009-06-19 06:29:24
lnghNewFont = CreateFont(FontHeihht,
FontWidth,
WAngle, '角度
WAngle, '角度
FontSize,
0,
0,
0,
0,
0,
0,
0,
0,
FontName)
lnghOriginalFont = SelectObject(pic.Handle, lnghNewFont)
g.DrawString(WFontText(i), pic.Font, TextBrush, WPoint.X, WPoint.Y)

上面的代码,设置一个自定义的字体,然后把它给pic.Handle(pic是picturebox)。
但是,处理完后我察看pic的字体属性,还是原来的,没有变成我自定义的字体。

请问应该怎么做才能达到我的要求?
...全文
181 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
expert2000 2009-06-23
  • 打赏
  • 举报
回复
现在,net的font类,能设置字体角度吗?没找到相应的属性或方法。
liuxiaonet108 2009-06-23
  • 打赏
  • 举报
回复
借鉴
gtiroy 2009-06-22
  • 打赏
  • 举报
回复
用VBA可以解决这个问题。
angel6709 2009-06-22
  • 打赏
  • 举报
回复
学习,
expert2000 2009-06-22
  • 打赏
  • 举报
回复
现在想问一下,createfont在.net中如何使用的?能够给个运行过的例子,我试了很多,字体定义都传不过来
hanjs 2009-06-21
  • 打赏
  • 举报
回复
up
wzuomin 2009-06-20
  • 打赏
  • 举报
回复
mark
expert2000 2009-06-19
  • 打赏
  • 举报
回复
多谢大家的帮助,以上资料已经看了。可能需求描述不清楚,感觉和我的需求有点出入。

我的需求是:
在同一个bitmap对象上可以随意画图形和输出字符串。每个图形或者字符串都把数据存入结构体。比如图形各个点的坐标,汉字的显示坐标,内容等等。图形可以任意改变形状,旋转。文字可以任意改变大小,字体,可以选中一个文字列,旋转。并且将操作结果保存,下次读取的时候可以显示为保存时的模样。

现在我的画图做法和冰凝提供的一样,不过是在同一个bitmap对象上操作,所以希望字符串旋转也在这个bitmap上重画,而不是新建一个bitmap对象,然后对其进行旋转。
炎龙无悔的方法,改变了坐标,不知道保存时的数据是不是转换以后的数据,保存后打开,显示的是旋转前的画面还是旋转后的画面。而且,转换以后,对其他图形有没有影响,这个我不懂,要确认一下。这个周末去上海,不方便验证,恳请知道的网友告知一下。
我现在文字列旋转的做法,就是参考人生如梦提供的第二个参考的例子做得,只是我把它写在一个类里面,方法的参数是一个picturebox对象地址,所以用了他的handle,但是,好像不成功,所以这个贴子的目的就是想问问,为什么不成功,是不是picturebox的handle不好用还是其他的原因?


wuhuwy 2009-06-19
  • 打赏
  • 举报
回复
参考以下资料,是VB5的,不过可以转换成VB.NET
http://www.haoxiai.net/bianchengyuyan/vbbiancheng/13147.html
wuyq11 2009-06-19
  • 打赏
  • 举报
回复

BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
BaseFont.createFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
BaseFont.createFont("/SIMYOU.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

参考
参考
xysyzj 2009-06-19
  • 打赏
  • 举报
回复
学习
outou 2009-06-19
  • 打赏
  • 举报
回复
yanlongwuhui 2009-06-19
  • 打赏
  • 举报
回复
参考:
     Dim lngAngle As Long = 20   
Dim MyPath As New GraphicsPath(Drawing.Drawing2D.FillMode.Winding)
MyPath.AddString("中国", New FontFamily("Times New Roman"), FontStyle.Bold, 40, New Point(150, 150), StringFormat.GenericDefault)
Dim MyMatrix As New System.Drawing.Drawing2D.Matrix
MyMatrix.RotateAt(lngAngle, New PointF(150, 150))
MyPath.Transform(MyMatrix)
With Me.PictureBox2.CreateGraphics
.Clear(Me.BackColor)
.FillPath(Brushes.Black, MyPath)
End With
Jessie_Zhang 2009-06-19
  • 打赏
  • 举报
回复
不懂,帮顶

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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