作者: xuwenning 时间: 2010-8-13 15:16
我修改了一下请老汉指正
‘=======================
Function ctlFontSize(ctl As Control)
Dim w As Single, c As Single, d As Single
Dim i As Long
Dim b As Boolean
ctl.FontSize = Nz(n) '1 磅等于1/72 英寸
'1440 缇等于一英寸
w = ctl.Width / 1440
For i = n To 1 Step -1
'使用vbFromUnicode判断中文字符有几个
'注意unicode编码的字串(如中文、日文、韩文等)
c = LenB(StrConv(Nz(ctl.Value, ""), vbFromUnicode)) - Len(Nz(ctl.Value, ""))
d = Len(Nz(ctl.Value, "")) - c
b = ((2 * c + d + 1) * i) / (2 * 72) - w <= 0
'b = ((Len(ctl.Value) + 1) * i) / (2 * 72) - w <= 0
If b = True Then
ctl.FontSize = i
Exit For
End If
Next
End Function作者: todaynew 时间: 2010-8-13 15:44
谢谢xuwenning 同志的批评指正,并赞赏直言不讳的精神。对其中的StrConv函数还没用过,需要进一步学习一下。作者: li08hua 时间: 2010-8-13 22:11
todaynew 同志,以我看,站主还有大家应该对网站有贡献的学友们搞个仪式,在您的第100个作品发表之日就该为您搞个庆祝活动,并记录在案。鼓励大家向您学习。不知如何?作者: xuwenning 时间: 2010-8-13 23:05
'--------------------------- font size --------------------------
Dim w As Single
Dim i As Long
Dim b As Boolean
Dim n
n = Texte8.FontSize
w = Texte8.Width / 1440
Texte8.Enabled = True
For i = n To 1 Step -1
b = (Len(Texte8.Value) + 1) * i / 72 - w <= 0
If b = True Then
Texte8.FontSize = i
Exit For
End If
Next