在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();
|