用MFC的Edit控制元件顯示日誌

NO IMAGE

本文由 @lonelyrains 出品,轉載請註明出處。 
文章連結: http://blog.csdn.net/lonelyrains/article/details/8696962

1、新增控制元件,設定控制元件屬性:勾選Multiline、Want return 、Read-only

2、class wizard 新增控制元件成員變數 CEdit m_logctrl

3、新增日誌:新增CString成員 CString m_Log

在事件響應函式中,新增日誌的程式碼,並將新增到日誌末尾最新的內容在控制元件的底部更新顯示:

	UpdateData(TRUE);
m_log  = "操作演示開始";
m_log  = "\r\n";
m_logctrl.SetWindowText(m_log);
//m_logctrl.SetScrollPos(SB_VERT,m_logctrl.GetLineCount(),TRUE);
m_logctrl.LineScroll(m_logctrl.GetLineCount());
UpdateData(FALSE);

4、注意事項:

①CString型別的m_log不能直接用class wizard 或者直接改ddx程式碼關聯到日誌的CEdit控制元件,不然會出現滾動條設定到底部後又一閃到頂部

②不能用註釋行的m_logctrl.SetScrollPos(SB_VERT,m_logctrl.GetLineCount(),TRUE);設定滾動條的位置。此方法會導致滾動條雖然到最低端了,但是控制元件的內容並沒有到最低端,仍停留在原位置

③使用”\r\n”回車換行,而不能直接用”\n”

④在用m_log和m_logctrl關聯一個edit控制元件時,在UpdateData(TRUE)之前,不論m_log做了何種修改,m_log都將會重新置為控制元件內真正包含的內容。UpdateData(TRUE)用於從控制元件中同步內容到程式;UpdateData(FALSE)用於從程式中同步內容到控制元件。