在窗体上添加了一个static文本控件,通过代码设置控件text值,但由于控件是固定宽度,导致文本过长则无法显示完整文字,想通过获取真实文字的宽度来调整static的宽度,以达到完整显示文字的目的。

  1. 不需要搞这么复杂,把static拖长到足够容纳文本为止,static是透明的,没必要去动态伸缩自己的长度。

  2. 并没有GetTextExtent这个API函数,这是C++里的函数,API一般不会傻到在返回值里写结构体,他调用的API是 ::Gdi32.GetTextExtentPoint32

API一般不需要声明,直接用就可以,例如:

var r,size = ::Gdi32.GetTextExtentPoint32(dc
,"待检查文本"
,string.len("待检查文本"),
::SIZE()
);