2

我正在尝试使用ExtTextOut带有Courier New字体的函数来呈现以下文本:

C₁C₂C²C³

上标字符显示正常,但下标字符显示为块。如果我使用该DrawText函数,则下标字符显示得很好。

我的印象是DrawText内部调用ExtTextOut。我弄错了还是确实DrawText对字符串进行了一些额外的处理以允许显示下标字符?

我可以做些什么来ExtTextOut使用Courier New字体显示下标字符?

我的使用代码ExtTextOut如下所示:

ExtTextOutW(hdc,x,y,0,0,szText,wcslen(szText),0);
4

2 回答 2

3

正如 Hans 在评论中指出的,现在 DrawText() 是使用字体链接实现的,但似乎 ExtTextOut() 不是。

如果您真的希望它可靠地工作,您可能必须自己进行字体链接。我的一些代码解决了类似的问题:TextOutput C++ 类

于 2011-04-13T08:06:19.213 回答
1

如果你得到的是矩形而不是字形,那么问题出在你使用的字体上。它没有必要的字形。例如,在 XP 上很常见,我不再安装它来检查。使用 Windows charmap.exe 小程序查找合适的字体。下标 2 是 Unicode 代码点 '\x2082'。

于 2011-04-12T23:12:31.793 回答