CStatic Control中的字母间距?

时间:2014-09-21 21:11:42

标签: c++ fonts mfc label letter-spacing

有没有办法在CStatic标签中设置Letter Spacing? 那么"TEST"看起来像"T E S T"? 我通过使用LOGFONT及其参数的SetFont()方法尝试了它:

LOGFONT lf;
memset(&lf, 0, sizeof(lf));
lf.lfHeight = -24;
lf.lfWidth = -17;
lf.lfWeight = FW_THIN;
lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;
lf.lfQuality = ANTIALIASED_QUALITY;
wcscpy_s(lf.lfFaceName, m_mainFont.GetFontFamilyName().c_str());

CFont font;
font.CreateFontIndirectW(&lf);

m_staticCtl.SetFont(&font);

lfWidth参数似乎没有设置任何间距,它只是在宽度上拉伸字符。

是否有任何选项允许在CStatic Control或CFont中使用字母间距? 或者我可以以某种方式操纵继承的CStatic类中的绘图吗?

<小时/> 编辑:我说的是字母间距。 TEST只是一个例子......我希望这很清楚。我想要字符之间的特定字母间距(以像素为单位)(不是额外的空格字符。)

1 个答案:

答案 0 :(得分:3)

这是你需要的吗?

“使用GDI调用SetTextCharacterExtra控制字符间距。另一个答案是使用ExtTextOut”.... http://social.msdn.microsoft.com/Forums/vstudio/en-US/538607f8-0d88-42f3-b6bc-f3008002b607/how-to-change-the-lineheight-and-letterspacing-value-when-drawing-text-in-gdiplus?forum=vcgeneral