为什么我在 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