水木子 发表于 2016-4-16 11:51 谢谢水版!原来AU3里已经有这样的自定义函数了
_WinAPI_GetTextExtentPoint32 (设备环境标识,文本字符串)Func GetStringDimensions($hWnd, $sText)
Local $hDC = _WinAPI_GetDC($hWnd) ; 获取当前窗口的设备环境句柄.
Local $hFont = _SendMessage($hWnd, $WM_GETFONT) ; 检索控件目前正在绘制文本的字体.
Local $hSelectObject = _WinAPI_SelectObject($hDC, $hFont) ; 选择设备环境对象.
Local $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, $sText) ; 检索字符串的高度和宽度.
_WinAPI_SelectObject($hDC, $hSelectObject)
_WinAPI_ReleaseDC($hWnd, $hDC) ; 释放设备环境.
Local $aReturn[2] = [DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2)] ; 设置字符串宽度和高度的数组.
Return $aReturn
EndFunc ;==>GetStringDimensions
不懂API的看起来很高大上似的,怎么用还得好好学学....以前用的那个VB还是啥语言写的函数忘了,代码比较多,但是用起来很不错,估计原理都是一样的.....
再次感谢 |