2013-12-17 39 views
1

作爲標題,我使用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()); 

回答

0

可以計算文本矩形,並相應做出調整:

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();