0

为什么我在 Vista 和 Windows 7 64 位上得到不同的字符宽度值?我正在使用 Delphi 的 Canvas.TextWidth 来告诉我字符的宽度。TextWidth 调用 Windows 函数 GetTextExtentPoint32。两台计算机上的 tahoma.ttf 文件是相同的。两台计算机都将 Windows 设置为使用 96 dpi。关闭清除类型无效。Vista 是在桌面上。Windows 7 64 位在笔记本电脑上。我尝试将台式机显示器连接到笔记本电脑;这并没有改变笔记本电脑的结果。

两台计算机都报告以下内容:

Tahoma
Size:               10
Height:             13
PixelsPerInch:      96
tmHeight:           16
tmAscent:           13
tmDescent:          3
tmInternalLeading:  3
tmExternalLeading:  0
tmAveCharWidth:     6
tmWeight:           400
tmOverhang:         0
tmDigitizedAspectX: 96
tmDigitizedAspectY: 96
tmCharSet:          ANSI_CharSet

tmMaxCharWidth 在 Windows 7 64 位上为 27,在 Vista 上为 35。

下面,第一列是字符,接下来是 Vista 上的字符宽度,第三列是 Windows 7 64 位上的字符宽度。

0  7   7
1  7   7
2  7   7
3  7   7
4  7   7
5  7   7
6  7   7
7  7   7
8  7   7
9  7   7

A  9   8
B  9   7
C  9   8
D  9   8
E  9   7
F  8   7
G  10  8
H  9   8
I  3   4
J  6   5
K  9   7
L  7   6
M  11  10
N  9   8
O  10  9
P  9   7
Q  10  9
R  9   8
S  9   8
T  7   8
U  9   8
V  9   8
W  13  12
X  7   8
Y  9   7
Z  7   7

a  7   7
b  7   7
c  7   6
d  7   7
e  7   7
f  3   4
g  7   7
h  7   7
i  3   3
j  3   4
k  7   6
l  3   3
m  11  11
n  7   7
o  7   7
p  7   7
q  7   7
r  4   5
s  7   6
t  4   4
u  7   7
v  5   6
w  9   10
x  7   6
y  7   6
z  7   6
4

0 回答 0