【发布时间】:2014-05-28 06:11:17
【问题描述】:
这是计算普通文本宽度的示例代码(没有粗体)。 --现在我想计算粗体文本的宽度。 我有“中介银行:”作为粗体文本
任何人都可以帮助......请
int CPrintableInvoice::GetFormattedStringWidth(const CString& txt)
{
if (txt.IsEmpty())
return 0;
CFont *pOldF, *pF = GetFont();
CClientDC dc(this);
pOldF = dc.SelectObject(pF);
CRect r;
dc.DrawText(txt, &r, DT_SINGLELINE|DT_CALCRECT);
int wid = r.Width();
dc.SelectObject(pOldF);
return wid;
}
提前致谢..
谢谢, 哈雷什。
【问题讨论】:
-
要获得粗体文本的宽度,您需要创建具有粗体属性的字体,并在执行相同计算之前将其选择到设备上下文中。要创建粗体字体: 1. 调用
pF->GetObject(...)以返回LOGFONT结构。 2.增加lfWeight会员。 3. 使用CFont::CreateFontIndirect(...)创建新字体。 4. 将其选入CClientDC即可。
标签: mfc