深奥的字符打印问题,高手请进!
MFC或者说WIN32api,打印字符的时候,字母、数字字符总是与下边界有一点间隔!字体越大,间隔越明显!汉字不会有间隔;
我现在在做一个编辑器。由于上面的原因,不同大小的字体在一行内的时候,根本对不齐!
我使用的字符打印函数是DrawText,TextOut。不要告诉我用SetTextAlign(dc,TA_BOTTOM);不是这个问题。
补充:用GetTextExtentPoint32计算当前字体下字符的尺寸的时候,小间隔是包含在尺寸里面的!
[解决办法]
字符有一个基线,大约在总字符高度的1/5的位置,每一个字符的上下位置是不一样的,英文字符为了美观,都是用字符的承重点压着基线,如oq都是用圆圈压着基线。DrawText,TextOut输出一行字符的时候是以基线为垂直对齐的标准的,所以大部分英文字符都有一点距离。
“我现在在做一个编辑器。由于上面的原因,不同大小的字体在一行内的时候,根本对不齐!”,这句话没太明白,是不是说一行是即有英文,又有中文的时候,英文显示小一些,这个是正常的,如果LZ非要英文加大一些,只有分别用不同的DrawText来显示了。