MFC编辑框显示问题

King030609 2010-04-02 09:01:45
每次要向编辑框添加内容时
我使用UpdateData(FALSE)或是SetWindowText来更新内容的时候
然后再使用 Setsel或LineScroll让总是显示最后一行
但是这样感觉很是不爽,每次刷新界面的时候,滚动条都是先跑上去,再跑下来
期待高手解答!谢谢
...全文
261 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 king030609 的回复:]
滚动条还是先跑上去,再跑下来!!
[/Quote]
那你就先把滚动条移动在最下面,LineScroll()调用,再修改数据后,SetDlgItemText(),再次调用LineScroll()
King030609 2010-04-02
  • 打赏
  • 举报
回复
停止的时候是停留在最后一行
King030609 2010-04-02
  • 打赏
  • 举报
回复
滚动条还是先跑上去,再跑下来!!
向立天 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 king030609 的回复:]
引用 2 楼 xianglitian 的回复:
比如你的编辑框是m_editYours,你要续写的字符串为strNew

int nLen = m_editYours.GetWindowTextLength();
m_editYours.SetSel(nLen, nLen);
m_editYours.ReplaceSel(strNew);

谢谢你的回答,这个方法不行啊,试过了
[/Quote]

怎么个不行?
是没有续接内容还是没滚动?
这个代码不包含滚动功能
滚屏你不是会么
通过这种方式可以实现续屏滚动
不会每次都从头滚
red-fly 2010-04-02
  • 打赏
  • 举报
回复
pEdit->SendMessage(WM_KEYDOWN, VK_END, MapVirtualKey(VK_CTRL,0));
这样可能没错
red-fly 2010-04-02
  • 打赏
  • 举报
回复
pEdit->SendMessage(WM_KEYDOWN, VK_END, VK_CTRL);
最后一个参数需要再查看一下是如何写的
red-fly 2010-04-02
  • 打赏
  • 举报
回复
向编辑框发送一个ctrl+end的消息。
如果是要跑到一行的最后面,则直接发送end消息就行了

像列表框的滚动,我都是这样做的
Eleven 2010-04-02
  • 打赏
  • 举报
回复
CString strText(_T(""));
GetDlgItemText(IDC_EDIT1, strText);
strText += strNewText;
SetDlgItemText(IDC_EDIT1, strText);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
ASSERT(pEdit);
pEdit->LineScroll(pEdit->GetLineCount());
King030609 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xianglitian 的回复:]
比如你的编辑框是m_editYours,你要续写的字符串为strNew

int nLen = m_editYours.GetWindowTextLength();
m_editYours.SetSel(nLen, nLen);
m_editYours.ReplaceSel(strNew);
[/Quote]
谢谢你的回答,这个方法不行啊,试过了
wuhuwy 2010-04-02
  • 打赏
  • 举报
回复
这个,好象不行吧
向立天 2010-04-02
  • 打赏
  • 举报
回复
比如你的编辑框是m_editYours,你要续写的字符串为strNew

int nLen = m_editYours.GetWindowTextLength();
m_editYours.SetSel(nLen, nLen);
m_editYours.ReplaceSel(strNew);
King030609 2010-04-02
  • 打赏
  • 举报
回复
自己顶下!!!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧