0
我從CEdit控件獲取文本。我需要模仿圖片上的相同文字。編輯控件是多行的,所以當我繼續輸入長字符串時,這個單詞的剩餘部分會進入下一行。 我沒有得到在CEdit中字符在下一行的哪個文本索引。發生換行的CEdit索引
所以,當試圖做到這一點,如果行的寬度超過矩形的寬度,我可以插入「\ r \ n」。但問題是如果插入的「\ r \ n」被DrawText api視爲新詞並且上述插入新行字符的目的失敗,則對齊位於字符的中心。
有人可以讓我知道,有沒有某種方式我可以知道在哪裏行破壞CEdit或替代相同。
CString strTempFormattedText(_T(""));
LONG tempTotalWidth = 0;
for(int i = 0; i < myText.GetLength(); i++) {
TCHAR tempChar = myText.GetAt(i);
tempTotalWidth += pDC->GetTextExtent(CString(tempChar), 1).cx;
if(tempTotalWidth >= rc.Width()) {
tempTotalWidth = 0;
strTempFormattedText.Append(_T("\n\r"));
}
strTempFormattedText.AppendChar(tempChar);
}
myText = strTempFormattedText;
switch(ALIGNMENT)
{
case RIGHT:
pDC->DrawText(myText, -1, rc, DT_WORDBREAK | DT_RIGHT);
break;
case CENTER:
pDC->DrawText(myText, -1, rc, DT_WORDBREAK | DT_CENTER);
break;
case LEFT:
pDC->DrawText(myText, -1, rc, DT_WORDBREAK | DT_LEFT);
break;
}
感謝