TRACE(_T("End Char %s \r\n"),ch==_T('\r')?_T("lf"):_T(""));\r
TRACE(_T("End Char %s \r\n"),ch==_T('\n')?_T("cr"):_T(""));\r
\r
- CString text;\r
- m_Log.GetWindowTextW(text);\r
- int count=0;\r
- for( int i=0;i<text.GetLength();i++)\r
- {\r
- if(text[i]==_T('\n'))\r
- count++;\r
- }\r
- if(count > 500)\r
- {\r
- int start=text.Find(_T('\n'),0);\r
- text = text.Mid(start+1);\r
- }\r
+ int lines=m_Log.GetLineCount();\r
+\r
if(ch == _T('\r'))\r
+ { \r
+ int start=m_Log.LineIndex(lines-1);\r
+ int length=m_Log.LineLength(lines-1);\r
+ m_Log.SetSel( start,start+length);\r
+ m_Log.ReplaceSel(m_LogText);\r
+\r
+ }else\r
{\r
- RemoveLastLine(text);\r
+ m_Log.SetSel(m_Log.GetWindowTextLength(),\r
+ m_Log.GetWindowTextLength());\r
+ m_Log.ReplaceSel(CString(_T("\r\n"))+m_LogText);\r
}\r
- text+=_T("\r\n")+m_LogText;\r
- m_Log.SetWindowTextW(text);\r
\r
+ if( lines >500 ) //limited log length\r
+ {\r
+ m_Log.SetSel(0,m_Log.LineLength(0));\r
+ m_Log.ReplaceSel(_T(""));\r
+ }\r
m_Log.LineScroll(m_Log.GetLineCount());\r
\r
int s1=m_LogText.Find(_T(':'));\r