【发布时间】:2013-10-14 10:28:25
【问题描述】:
我想要一个多行 CEdit 控件像滚动字幕一样缓慢地向下滚动。
到目前为止,我在 OnTimer() 事件中使用 CEdit::LineScroll()。它可以进行全线滚动,但不如我预期的那么流畅。 我尝试用 ScrollWindow() 替换 LineScroll() 以便我可以按像素滚动文本,但是 ScrollWindow() 函数不会绘制应该滚动到控件中的新文本行。
有人知道如何实现这一目标吗?
如果我没有清楚地描述问题。我添加了这些 GIF: LineScroll() 做了什么(我只需要它更流畅):
这就是 ScrollWindow() 的作用(以下文字被剪掉):
这是ScrollWindow()的代码:
CRect clientRect;
m_editAns.GetClientRect(&clientRect);
m_editAns.ScrollWindow(0, -10, NULL, &clientRect);
m_editAns.UpdateWindow();
ValidateRect(&clientRect);
*PS:该项目在其他地方使用 CEdit 控件,因此我无法用另一个控件替换它,尽管继承是可以接受的。
【问题讨论】: