在一个窗口中用GDI+的DrawSting输入一些文字,发现位置始终不正确。始终找不到原因,最后干脆把纵坐标设为0,发现有的字体确实显示位置正确了,有的字体却仍然显示位置不正确。
如果使用的字体为“新宋体”(中、英文均为“新宋体))(代码如下):
FontFamily CompFontFamily(L"新宋体");
Font cFont(&CompFontFamily, size, FontStyleRegular, UnitPixel);
PointF pt(xsRect[i].left, 0);
graph.DrawString(wstr, converted, &cFont, pt, &Brush);
此时显示的字体位置正确,紧靠图的最上方:
(最上面一条横线就是图的最上方的一条横线)
可是如果中文字体换成“微软雅黑”(此时英文字体仍然为”新宋体“),显示效果如下:
此时,英文由于仍然是“新宋体”,位置没有变化(但好象仍然没有显示在图的最上方,我觉得应该显示在最上方),而中文字体,却离最上方有四个像素之差。
这是怎么回事?为什么中文字体选“微软雅黑”的时候,显示位置不正确?而英文字体,即使是“新宋体”,显示位置也不正确(本来应该显示在最上方,和最上面一条横线相交)。而是都偏下了几个像素?