______写给自己看的
如果对于同一个问题,你总是调试不出正确的结果:问题只有这几个:思路不对,有些地方(特指函数)根本不知道什么意思,总之是钻牛角尖了。对于这种情况最好的办法是休息,换个环境在想,说不定有特殊效果:
dc.SetTextAlign(0);//特殊函数就是这个,干什么的呢???
CFont font;
CFont* old;
CRect rt( 13,16,185, 60 );
LOGFONT logFont;
CString DisplayValue=privatePISetInfo_Stru.DecSet;
ZeroMemory(&logFont,sizeof(logFont));
logFont.lfHeight = rt.Height();
_tcscpy(logFont.lfFaceName,_T("Arial"));
font.CreateFontIndirect(&logFont);
old = pDC->SelectObject(&font);
int i=0;
CSize temp_size=pDC->GetTextExtent(DisplayValue);//检测占据空间
int temp_int=rt.Width();
float temp_float=(float)DisplayValue.GetLength();
while (temp_size.cx>temp_int)
{
logFont.lfWidth = rt.Width()/temp_float-i;
font.DeleteObject();
font.CreateFontIndirect(&logFont);
pDC->SelectObject(&font);
i++;
temp_size=pDC->GetTextExtent(DisplayValue);
}
pDC->DrawText( DisplayValue,&rt,DT_CENTER|DT_SINGLELINE|DT_VCENTER );
pDC->SelectObject(old);
font.DeleteObject();
评论