游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2116|回复: 3

帮忙研究GetTextExtentPoint32A在VB.NET上怎用~~~

[复制链接]

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2005-12-24 16:50:00 | 显示全部楼层 |阅读模式
API参考中的内容:

VB声明
Declare Function GetTextExtentPoint& Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE)
Declare Function GetTextExtentPoint32& Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE)
说明
判断一个字串的大小(范围)。在Win32环境中,最好使用GetTextExtentPoint32,它提供了更精确的计算结果
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpszString String,欲度量其范围(extent)的一个字串
cbString Long,lpszString字串的长度
lpSize SIZE,这个结构用于装载字串范围的高度和宽度信息
注解
这个函数不会将剪切区考虑在内,但却考虑到了由SetTextCharacterExtra函数设置的任何额外空间(间距)

.NET中调用该API时返回非0,但lpSize的Width和Height始终是0
在VB6中lpSize的Width和Height能正确设置值

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-12-24 17:02:00 | 显示全部楼层

Re:帮忙研究GetTextExtentPoint32A在VB.NET上怎用~~~

VB.NET中自定SIZE结构:
        Public Structure SIZE
            Public Width As Integer
            Public Height As Integer
        End Structure

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2005-12-24 18:32:00 | 显示全部楼层

Re:帮忙研究GetTextExtentPoint32A在VB.NET上怎用~~~

ref


只能测试英文,且不能换行。

53

主题

241

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
 楼主| 发表于 2005-12-24 18:56:00 | 显示全部楼层

Re:帮忙研究GetTextExtentPoint32A在VB.NET上怎用~~~

换行的话,Font.DrawText可以计算,但我想取得整段文本的宽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 02:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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