输出文本时,使用默认的LogFont m_logFont.
做如下处理:...
for(i=0;i<100;i++)
{
m_logFont.lfHeight = i;
font.CreateFontIndirect(&m_logFont);
memdc.SelectObject(&font);
memdc.TextOut(x, y, "O"); GetTextMetrics(memdc.GetSafeHdc(), &metric);
//此时的metric.tmHeight在i=32与96时有误.
font.DeleteObject();
}错误为,正常的情况下metric.tmInternalLeading为0,并且metric.tmHeight等于i;
但是当i=32时此值确为1,并且metric.tmHeight等于(i+1).有没有高手帮忙解决:怎么样才能避免metric.tmInternalLeading=1啊!
做如下处理:...
for(i=0;i<100;i++)
{
m_logFont.lfHeight = i;
font.CreateFontIndirect(&m_logFont);
memdc.SelectObject(&font);
memdc.TextOut(x, y, "O"); GetTextMetrics(memdc.GetSafeHdc(), &metric);
//此时的metric.tmHeight在i=32与96时有误.
font.DeleteObject();
}错误为,正常的情况下metric.tmInternalLeading为0,并且metric.tmHeight等于i;
但是当i=32时此值确为1,并且metric.tmHeight等于(i+1).有没有高手帮忙解决:怎么样才能避免metric.tmInternalLeading=1啊!
不需要啊,直接delete了然后再select,这样就不用了吧?
不需要啊,直接delete了然后再select,这样就不用了吧?”
看了你还没有理解真谛啊
就这样,用这个nHeight不就可以了?