大家都知道,RichEdit.Lines.Add() 函数可以给 RichEdit 添加一行文本,当 RichEdit 拥有输入焦点时,这一行文本会显示在当前 RichEdit 文本显示区域的最底端,但如果 RichEdit 当前不拥有输入焦点时,如何使右侧的滚动条自动拖到底端以显示 RichEdit 最新添加的文本行?

解决方案 »

  1.   

    卷屏到光标处
    SendMessage(RichEdit1.Handle, EM_SCROLLCARET, 0, 0);向下卷屏一行
    SendMessage(RichEdit1.Handle, EM_SCROLL, SB_LINEDOWN, 0)向下卷屏到底
    SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0)参见 MSDN 的 WM_VSCROLL
      

  2.   

    SendMessage(RichEdit1.Handle, WM_VSCROLL, SB_BOTTOM, 0);
    加在OnChange事件中
      

  3.   

    非常感谢大家的帮助,尤其是 pazee(耙子) ,答案非常正点:)但是我想达到这样的效果:当滚动条被鼠标左键按住(实际上就是有人在手动控制滚动条)的时候不要自动滚到底端,能检测并实现么?
      

  4.   

    To: SilveryFox(银狐)
    愿闻其详