Window 7和Window XP之间的TextOut的不同移位长度结果

问题描述:

作为标题,我使用CDC工具来绘制文本,如下面的代码,并使用nXOffset变量来移动位置以对齐我的文本,但移位长度的结果是顺从的在Windows 7和Windows XP,Windows 7是好的,但窗口XP不符合我的期望。 如何解决它,以及它会造成什么样的问题?Window 7和Window XP之间的TextOut的不同移位长度结果

CDC*  m_cdcRealTimeValue; 
m_cdcRealTimeValue->SelectObject(&mFont); 
m_cdcRealTimeValue->SetTextColor(colorText); 
m_cdcRealTimeValue->TextOut(rectRealTime.Width() - nXOffset, 
     (int)(nRealTimeRg[1] + nYGapRealTime[0]), strTempPVLastMove.Left(nPreDot), strTempPVLastMove.Left(nPreDot).GetLength()); 

可以计算文本矩形,并相应做出调整:

CRect r(0, 0, 0, 0); // will hold the text rect 
m_cdcRealTimeValue->DrawText(text, textLen, r, DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_CALCRECT); 
int textWidth = r.Width();