首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何顺利滚动CEdit(MFC)

如何顺利滚动CEdit(MFC)
EN

Stack Overflow用户
提问于 2013-09-25 16:53:02
回答 1查看 823关注 0票数 0

我希望多行CEdit控件像滚动字幕一样缓慢地滚动自己。

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

有谁知道如何做到这一点吗?

如果我没有把问题描述清楚的话。我添加了以下gifs: LineScroll()做什么(我只需要它更平滑):

这就是ScrollWindow()所做的事情(下面的文本被剪切):

下面是ScrollWindow()的代码:

代码语言:javascript
复制
CRect clientRect;
m_editAns.GetClientRect(&clientRect);
m_editAns.ScrollWindow(0, -10, NULL, &clientRect);
m_editAns.UpdateWindow();
ValidateRect(&clientRect);

*PS:项目在其他地方使用CEdit控件,因此我不能用另一个控件替换它,尽管继承是可以接受的。

EN

回答 1

Stack Overflow用户

发布于 2013-09-25 18:50:56

CWnd::滚动窗口称,

若要在完成滚动操作的同时重新绘制未覆盖区域,请在调用UpdateWindow成员函数后立即调用ScrollWindow。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19010861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档