VC++ EDIT控件显示消息,当达到200条消息时,如何添加一行,从顶端删除一条

voidCPARA2::DisplayMsg(CStringlpszMessage){intLineNum=m_EditMsg.GetLineCount();//获取行号... void CPARA2::DisplayMsg(CString lpszMessage)
{
int LineNum=m_EditMsg.GetLineCount(); //获取行号
int count=lpszMessage.GetLength();
m_EditMsg.SetSel(-1); //设置光标到尾部
m_EditMsg.ReplaceSel(lpszMessage+"\r\n"); //追加
if(LineNum>=200)
{
//……此处该如何添加
}
}
展开
 我来答
任明星Ming
2013-07-22 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1149万
展开全部
那当添加时,获取所有字符串,找出第一个'\n'的位置也就是第一行的行号,然后把这位置及这位置之前的字符串删掉。
用CString的类操作就可以实现了。
追问
用CString Find()是能实现效果,可是循环显示消息的话就会出现刷屏闪动,而且效率明显下降,请问还有其他的方法吗?
追答
你可以现在CString里将要对字符串的操作一次操作好,再赋值给CEdit,不要每操作一次就赋值一次。这样的话可以降低CEdit的窗口刷新频率,自然提高了性能。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式