本文整理汇总了C++中Attr::fontattr方法的典型用法代码示例。如果您正苦于以下问题:C++ Attr::fontattr方法的具体用法?C++ Attr::fontattr怎么用?C++ Attr::fontattr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Attr
的用法示例。
在下文中一共展示了Attr::fontattr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTextExtent
void TextFormatter::GetTextExtent(CFDC& dc, Paragraph& line, int off,
int width, int& nch, int *dx, int& lh, int& lb)
{
const wchar_t *sp = line.str;
Attr *att = line.cflags + off;
int len = nch - off;
int xoff = 0;
sp += off;
nch = 0;
while (len > 0 && width > 0)
{
int i;
int n = 0;
SIZE sz = { 0, 0 };
Attr curatt = att[0];
if (curatt.img)
{
// inline image
int idx = *sp;
Image img;
if (idx < line.links.size() &&
m_tf->GetImage(line.links[idx].target, dc.DC(),
width, m_height, m_angle, img))
{
int dh = img.height - lb;
if (dh > 0)
{
lh += dh;
lb += dh;
}
sz.cx = img.width;
*dx = xoff + img.width;
}
n = 1;
++nch;
if (len == 1)
break;
}
else
{
for (i = 1; i < len && att[i].fontflags() == curatt.fontflags(); ++i);
dc.SelectFont(curatt.fsize, curatt.fontattr(), true);
int fh, fa;
dc.GetFontSize(fh, fa);
if (lh < fh)
{
lh = fh;
lb = fa;
}
dc.GetTextExtent(sp, i, width, n, dx, sz);
if (n == 0)
break;
for (int j = 0; j < n; ++j)
dx[j] += xoff;
nch += n;
if (i == len)
break;
}
xoff += sz.cx;
width -= sz.cx;
dx += n;
sp += n;
att += n;
len -= n;
}
}