用下面的代码,在richEdit的最后添加一行.一般情况都能正确工作,最近搞了个用TabCtrl控制两个RichEdit,正在显示那个工作正常,隐藏那个老添加到四行时就会把第一行的第一个字符删掉.以后每添一行删一个.那位高手帮忙看看,谢了
int nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.ReplaceSel(str);
nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
int nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.ReplaceSel(str);
nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.ReplaceSel(str);
nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);把+1去掉看看。改成
m_edit.SetSel(nLength, nLength);
如果怀疑这段代码错误,很简单,把这几句去掉,你看看效果,如果有错误,也是这几句话中那个有错误!
nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength + 1, nLength + 1);
m_edit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
但是,我怀疑错误不在这儿!你看看其它的地方有使用到 m_edit的地方么?
是不是其他地方有什么问题?
m_lowEdit->SetSel(-1, -1);
m_lowEdit->GetSel(cr);
m_lowEdit->ReplaceSel(lpszChat);
这也不对.算了,想了个办法,看不添加保存在一个string中,第一次激活时添加.就解决了.