如果我在MFC中有粗体文本,如何计算宽度

时间:2014-05-28 06:11:18

标签: mfc

这是用于计算普通文本宽度的示例代码(粗体显示为out)。 - 现在我想计算粗体文字宽度。 我正在使用“Intermediatery bank:”作为粗体文字

任何人都可以帮忙......请

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;
}

先谢谢..

谢谢, Hareesh。

1 个答案:

答案 0 :(得分:0)

请尝试使用GetTextExtent()。它将如下:

CFont *pOldF, *pF = GetFont();
CClientDC dc(this);
pOldF = dc.SelectObject(pF);
CSize size = dc.GetTextExtent();
return size.cx;