- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果我运行下面的代码,我会得到以下带有“cambria Math”字体的 tm 和 gm 结构的值:
tm.tmHeight = 161
tm.tmAscent = 90
tm.tmDescent = 71
和
gm.gmBlackBoxY = 14
tm
中的值显然有误! gmBlackBoxY
似乎是正确的。
现在,如果我用
运行代码lfFaceName = "Arial"
我为 tm
和 gm
得到了以下正确的值:
tm.tmHeight = 33
tm.tmAscent = 27
tm.tmDescent = 6
和
gm.gmBlackBoxY = 15
代码:
int iLogPixelsY;
iLogPixelsY = GetDeviceCaps(hdc,LOGPIXELSY);
LOGFONT lf;
int iPts;
iPts = 22;
memset(&lf, 0, sizeof(LOGFONT));
lf.lfHeight = -iPts * iLogPixelsY / 72;
lf.lfWeight = FW_NORMAL;
lf.lfItalic = 0;
lf.lfCharSet = 0;
lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;
wcscpy(lf.lfFaceName, L"Cambria Math");
HFONT hFont;
hFont = CreateFontIndirect(&lf);
hFont = (HFONT)SelectObject(hdc, hFont);
TCHAR tx;
tx = 'a';
TEXTMETRIC tm;
GetTextMetrics(hdc, &tm);
GLYPHMETRICS gm;
GetGlyphOutline(hdc, tx, GGO_METRICS, &gm, 0, NULL, &gmat);
谁能解释在获取“Cambria Math”字体的 TEXTMETRIC
结构时明显的错误?
最佳答案
您代码中的错误不适用于获取 TEXTMETRIC 结构(不包括您在同一代码中使用 TCHAR、CHAR 和 WCHAR 函数和变量)。
tm.tmHeight == 161;
tm.tmAscent == 90;
tm.tmDescent == 71;
tm.tmInternalLeading == 132;
以上几行没有任何错误!!!
tm.tmHeight == tm.tmAscent + tm.tmDescent;
tm.tmHeight == tm.tmInternalLeading + MulDiv(22,GetDeviceCaps(hdc,LOGPIXELSY),72);
“Cambria Math”就是用这些参数设计的!
转到链接http://www.ascenderfonts.com/font/cambria-regular.aspx将字体大小更改为 22pt(或其他),并查看字体“Cambria”和字体“Cambria Math”的上下边距之间的差异。
关于windows - TEXTMETRIC 结构和 "Cambria Math"字体有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554438/
我想在 winforms 文本框中显示一些数学表达式。所以我认为“Cambria Math”字体是一个不错的选择,但由于字体的顶部和底部边距较高,文本看起来很奇怪。一开始我以为我犯了一个错误,但根据t
如您所知,Mac 系统在不到 33% 的情况下支持 Cambria 字体。所以我必须为它使用字体。我需要一个代码来帮助用户的浏览器(取决于他们的系统)如果他们没有字体然后下载它。所以我写了这段纯CSS
我们的网页设计师建议使用 Cambria 作为字体。在网上查看各种字体引用时,我们找不到列出最近(2010 年后)浏览器对各种字体的支持的权威来源。 您使用哪些来源来确定特定字体的支持程度?我猜像浏览
我已经使用 AngularJs 实现了一个网站。我使用了几种字体,包括使用 font-family 的 cambria 和 calibri,这些字体在 Webiste 甚至在 Ios Mobiles(
如果我运行下面的代码,我会得到以下带有“cambria Math”字体的 tm 和 gm 结构的值: tm.tmHeight = 161 tm.tmAscent = 90 tm.tmDescent =
我是一名优秀的程序员,十分优秀!