如何顺利滚动CEdit(MFC)

时间:2013-09-25 16:53:02

标签: mfc scroll cedit

我希望多行CEdit控件能够像滚动字幕一样缓慢地向下滚动。

到目前为止,我在OnTimer()事件中使用CEdit :: LineScroll()。它可以进行全线滚动,并不像我预期的那样顺畅。 我尝试用ScrollWindow()替换LineScroll(),这样我就可以按像素滚动文本,但是ScrollWindow()函数不会绘制应该滚动到控件中的新文本行。

任何人都知道如何实现这个目标?

如果我没有明确说明问题。我添加这些GIF: LineScroll()做什么(我只需要它更顺畅):

LineScrool

这就是ScrollWindow()所做的事情(以下文字被删除):

ScrollWindow

以下是ScrollWindow()的代码:

CRect clientRect;
m_editAns.GetClientRect(&clientRect);
m_editAns.ScrollWindow(0, -10, NULL, &clientRect);
m_editAns.UpdateWindow();
ValidateRect(&clientRect);

* PS:该项目使用CEdit控件,所以我不能用另一个控件替换它,尽管继承是可以接受的。

1 个答案:

答案 0 :(得分:0)

根据CWnd::ScrollWindow

  

要在滚动完成的同时重新绘制未覆盖的区域,   致电后立即拨打UpdateWindow member function   滚屏。