挑战性的问题-GetLine,非高手莫入
在CRichEditView中用GetLine取文本,当文本为英文时正确,但是含有中文时读出的行不完整。
void CMyRichEditView::GetLineString(int nLine, CString &strLine)
{
CRichEditCtrl &SynCtrl=GetRichEditCtrl();
if(nLine > m_nLintCount - 1 || nLine < 0)
return;
int nTemp = SynCtrl.LineIndex(nLine);
nTemp = SynCtrl.LineLength(nTemp) + 4 * sizeof(BYTE); //根据MSDN文档,需留出4个字节位置
TCHAR *pszChars=new TCHAR[nTemp];
int nLen = SynCtrl.GetLine(nLine, pszChars, nTemp); pszChars[nLen]='\0';
strLine = pszChars;
if(pszChars!=NULL)
delete pszChars;
return;
}