我正在尝试使用带有Courier New
字体的ExtTextOut
函数呈现以下文字:
C₁C₂C²C³
上标字符显示正常,但下标字符显示为块。如果我使用DrawText
函数,则下标字符显示正常。
我的印象是DrawText
内部调用ExtTextOut
。我错了还是DrawText
对字符串执行了一些额外的处理以允许下标字符出现?
我能做些什么让ExtTextOut
使用Courier New
字体显示下标字符?
我使用ExtTextOut
的代码如下所示:
ExtTextOutW(hdc,x,y,0,0,szText,wcslen(szText),0);
答案 0 :(得分:2)
汉斯在评论中指出,DrawText()现在使用字体链接实现,但看起来ExtTextOut()不是。
如果你真的想让它可靠地工作,你可能不得不自己做字体链接。我的一些代码解决了类似的问题:TextOutput C++ class
答案 1 :(得分:1)
如果你得到矩形而不是字形,那么问题就是你正在使用的字体。它没有必要的字形。例如,在XP上常见的,我没有安装它来检查。使用Windows charmap.exe小程序查找合适的字体。下标2是Unicode代码点'\ x2082'。