textwidth的结果不正确

时间:2023-01-20 16:04:16
在richedit里分别写入了“W”和“E”,然后用textwidth检查宽度,显示都是11,但是显示起来“W”明显比“E”要宽,而且在一行里可输入的字符数量也不一样。(字体是Courier New,字号是16)。
另外,把richedit的width设成124,它的clientwidth是120,但是在第一行里输入8个大写“E”就要换行了,可是textwidth显示长度才88,咱个回事呢?

7 个解决方案

#1


这个跟字体和分辨率都有关

#2


同意楼上 说的有道理

#3


引用 1 楼 sololie 的回复:
这个跟字体和分辨率都有关

受教了

#4


引用 1 楼 sololie 的回复:
这个跟字体和分辨率都有关

抱歉,今天内部培训,才来。
字体我设置的是Courier New,它的特点就是字符等宽,既然都等宽了应该显示时也一样宽才对啊,但它就是不一样。

#5


补充一下,如果不是手输字符,而是用line.add('E')的语句写进去就是等宽的,如果是后面自己手输入的字符就不等宽,郁闷。

#7


还是没搞明白为什么手输和语句写入字符的宽度不一样,不过又发现一个问题:
我设置richedit的width=324,那么它的clientwidth=320,如果我选定一个字符宽度是10的字号,比如字符“E”,那么应该可以在一行内写满32个字符后才换行,但是写到31的时候就换行了,这是什么情况啊??????

#1


这个跟字体和分辨率都有关

#2


同意楼上 说的有道理

#3


引用 1 楼 sololie 的回复:
这个跟字体和分辨率都有关

受教了

#4


引用 1 楼 sololie 的回复:
这个跟字体和分辨率都有关

抱歉,今天内部培训,才来。
字体我设置的是Courier New,它的特点就是字符等宽,既然都等宽了应该显示时也一样宽才对啊,但它就是不一样。

#5


补充一下,如果不是手输字符,而是用line.add('E')的语句写进去就是等宽的,如果是后面自己手输入的字符就不等宽,郁闷。

#6


#7


还是没搞明白为什么手输和语句写入字符的宽度不一样,不过又发现一个问题:
我设置richedit的width=324,那么它的clientwidth=320,如果我选定一个字符宽度是10的字号,比如字符“E”,那么应该可以在一行内写满32个字符后才换行,但是写到31的时候就换行了,这是什么情况啊??????