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