关于第11课中 等宽字体和变宽字体问题
问题:cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;
tm.tmPitchAndFamily & 1 ? 3 : 2这个是判断 等宽或变宽 字体的,但是判断完后 为什么要等于3或2在 * cxChar (字体的宽度)/ 2 呢 ,这么做的目的是干嘛呢 视频中,老师讲得很清楚了,具体再去认真看一遍 ba21 发表于 2017-10-17 22:28
视频中,老师讲得很清楚了,具体再去认真看一遍
听不太明白呀,给我讲一下好吗 hb328496536 发表于 2017-10-18 11:39
听不太明白呀,给我讲一下好吗
就这句话就公式表示,不明白多听几遍 tmPitchAndFamliy 最后 一位 是否 是代表 字体 是否是变宽
tmPitchAndFamliy & 1 判断
是就 3/2*xChar
否就是 2/2*xChar
你也 知道 windows 计算 int会损失 精度
所以 就变了下 型
你也可以这样写
xCaps = (int)((tm.tmPicthAndFamliy & 1 3:2)/2.0*xChar); if(tm.tmPicthAndFamliy &1){
xCaps = 3*xChar/2;
}else
{
xCaps = xChar;
}
页:
[1]