游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8327|回复: 25

请问如何获得字符串的尺寸?

[复制链接]

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2008-5-26 21:52:00 | 显示全部楼层 |阅读模式
我在用VB.NET,想要指定一个不换行的字符串和字体,要求这个字符串的宽和高
用过了最常用的Graphic.MeasureString函数,误差简直无法忍受
用过了Label,让AutoSize属性为True,然后取尺寸,发现会把Label的边框尺寸加进去,而且尺寸不可预计
看了网上一个VB6的例子,说可以用窗口的TextWidth和TextHeight方法获得,结果比较精确,最后发现VB.NET不支持
最后看了GetTextExtentPoint32这个API,VB6中可以很成功地使用,但是VB.NET中取出来的却是0,不知道怎么使用,或者说是不知道怎么处理句柄,VB6的Form.hWnd和VB.NET的Form.Handle取出来的类型都不同

请问各位有什么方法么?能够比较精确地取得一个字符串的尺寸,我知道最近提问有点多,但是没办法,问题太多了。。

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2008-5-27 09:41:00 | 显示全部楼层

Re:请问如何获得字符串的尺寸?

Form.Handle.ToInt32就与原来一样了,但GetTextExtentPoint32我也没试成功过,所以一直还是用Graphic.MeasureString

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2008-5-27 11:14:00 | 显示全部楼层

Re:请问如何获得字符串的尺寸?

测象素颜色...........很麻烦吧。

23

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2008-5-27 13:20:00 | 显示全部楼层

Re:请问如何获得字符串的尺寸?

使用VB.NET的DllImports机制行么?

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2008-5-27 19:54:00 | 显示全部楼层

Re: Re:请问如何获得字符串的尺寸?

息阳: Re:请问如何获得字符串的尺寸?

使用VB.NET的DllImports机制行么?


请问有具体方法么?

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2008-5-27 19:55:00 | 显示全部楼层

Re: Re:请问如何获得字符串的尺寸?

Miu.C: Re:请问如何获得字符串的尺寸?

测象素颜色...........很麻烦吧。


我觉得不太现实

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2008-5-27 19:56:00 | 显示全部楼层

Re: Re:请问如何获得字符串的尺寸?

系统崩溃: Re:请问如何获得字符串的尺寸?

Form.Handle.ToInt32就与原来一样了,但GetTextExtentPoint32我也没试成功过,所以一直还是用Graphic.MeasureString


我也是用过ToInt32进行转换,结果取出来的是0,是不是.NET下的FORM不支持这种方法?MeasureString的误差太大了,比如有时候本来应该是50,它测出来的却是65。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-5-27 21:09:00 | 显示全部楼层

Re:请问如何获得字符串的尺寸?

Graphic.MeasureString是GDI+的,用来快速估算的,所以和通常的API的结果有区别

要精确的可以用TextRenderer.MeasureText
Framework 2.0以上就有

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2008-5-28 16:05:00 | 显示全部楼层

Re: Re:请问如何获得字符串的尺寸?

psic: Re:请问如何获得字符串的尺寸?

Graphic.MeasureString是GDI+的,用来快速估算的,所以和通常的API的结果有区别

要精确的可以用TextRend...


请问有什么转换的方法么?我用的2003。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2008-5-28 18:09:00 | 显示全部楼层

Re: Re: Re:请问如何获得字符串的尺寸?

大元帅: Re: Re:请问如何获得字符串的尺寸?



请问有什么转换的方法么?我用的2003。


那就没办法了,只好用API的DrawTextEx了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 07:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表