pusofalse 发表于 2010-8-4 02:10:12

回复 15# yhxhappy


    不能自定义字体?yhxhappy兄究竟是以什么为依据才说出这句话的呢?

yhxhappy 发表于 2010-8-4 10:21:00

本帖最后由 yhxhappy 于 2010-8-4 10:24 编辑

回复 16# pusofalse


P版再一次提醒了我,又重新验证发现把ListView和Label设置成一样的字体,计算出来的宽度非常准确,之前12楼的代码计算有误差可能是ListView和Label的默认字体或字号不一致导致的。
非常感谢P版的指点。#include <GuiConstantsEx.au3>
#include <GuiListView.au3>

      
GUICreate("ListView Get String Width", 400, 150)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 200, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
GUICtrlSetFont(-1, 12, 800, 0, "Arial")                                                ;设置字号及字体
GUICtrlSetState(-1, $GUI_HIDE)

$txt = "测试字符串A"
$width = _GUICtrlListView_GetStringWidth($hListView, $txt)

GUISetState()

GUICtrlCreateLabel($txt, 20, 50, $width, 18)
GUICtrlSetFont(-1, 12, 800, 0, "Arial")                                                ;设置字号及字体
GUICtrlSetBkColor(-1, 0xFFFFFF)

GUICtrlCreateLabel("字符串 '" & $txt &"' 的像素宽度: "& $width, 20, 100, 400, 18)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()

cashiba 发表于 2017-2-24 00:26:21

afan的更好的方法呢?
{:face (396):}
页: 1 [2]
查看完整版本: [已解决]如何计算 字符串 在 Label 占用的像素宽度