编程中的MFC开放式字体功能

时间:2017-03-21 14:35:59

标签: c++ windows mfc

以下代码是我打印电话号码的功能的一部分。除了输出中的一个小问题外,该功能可以正确使用所选的字体和大小。

cDrucker* drucker;
CFont fontText;
LOGFONT logFont;
Int links = 125;

::ZeroMemory(&logFont, sizeof(LOGFONT));
logFont.lfHeight = -MulDiv(9.5, drucker->printerDC.GetDeviceCaps(LOGPIXELSY), 72);
logFont.lfWidth = 0;
logFont.lfEscapement = 0;
logFont.lfOrientation = 0;
logFont.lfWeight = FW_NORMAL;
logFont.lfItalic = FALSE;
logFont.lfUnderline = FALSE;
logFont.lfStrikeOut = FALSE;
logFont.lfCharSet = ANSI_CHARSET;
logFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision = CLIP_DFA_DISABLE;
logFont.lfQuality = CLEARTYPE_QUALITY;
logFont.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
strcpy_s(logFont.lfFaceName, "MetaOT-Book");
fontText.CreateFontIndirect(&logFont);

int y = 49 - 6 - 5;
drucker->printerDC.SelectObject(&fontText);
drucker->textOut("Telefon: (0123)456789", links, &y, false);

输出1:函数

打印的实际输出

输出2:我想要的输出。

outputs

问题是如何避免输出1中的替代上下模式并使其看起来像输出2?

我知道这就是字体打印数字的方式。它是按照这种方式设计的,但在使用字体选项的MS字中,我可以将其更改为我想要的输出。 如下图所示。

font

我不想使用其他字体所以我想知道我是否可以使用我的程序实现相同的目标。

字体和大小:

f&s

0 个答案:

没有答案