在aardio里,如何计算winform里一个static控件里的文字的实际宽度,然后动态调整控件宽度为文字展示宽度呢?
直接上代码:

import win.ui;
import win;

// 创建窗口
var winform = win.form(text="Static控件宽度调整";right=600;bottom=400)

// 添加一个static控件
var static = winform.add(
static={cls="static";text="这是一个static控件";left=50;top=50;right=200;bottom=80}
);

// 获取static控件的字体
var hFont = static.sendMessage(0x0031 /* WM_GETFONT */, 0, 0);

// 创建graphics对象
var graphics = win.graphics(winform.hwnd);

// 选择字体
graphics.selectObject(hFont);

// 计算文字的宽度
var textWidth = graphics.measureString(static.text).cx;

// 调整static控件的宽度
static.setPos(, , textWidth + 10); // 加10是为了留一些边距

// 显示窗口
winform.show();
win.loopMessage();