您的位置:首页 > 其它

用MFC的Edit控件显示日志

2013-03-20 16:22 561 查看
本文由 @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)用于从程序中同步内容到控件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: