在内存DC上实现跑马灯

zonghenglls 2011-07-30 05:40:47
程序使用双缓冲画图,现在要在界面上添加跑马灯的效果,我的思路是采用定时器,不断改变坐标,再用DrawText写入到内存DC中,但是问题是消失的一端怎么做,是每次都把字符串的第一个字去掉吗?但是要支持多语言,“字“的长度是不固定的,或者有什么办法能解决这个问题的,帮兄弟一个忙,谢谢。
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
__lhy 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 zonghenglls 的回复:]
程序使用双缓冲画图,现在要在界面上添加跑马灯的效果,我的思路是采用定时器,不断改变坐标,再用DrawText写入到内存DC中,但是问题是消失的一端怎么做,是每次都把字符串的第一个字去掉吗?但是要支持多语言,“字“的长度是不固定的,或者有什么办法能解决这个问题的,帮兄弟一个忙,谢谢。
[/Quote]
将文字写到位图上 移动位图就行了
移入、移出循环
向立天 2011-08-16
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
我才是心翼 2011-07-30
  • 打赏
  • 举报
回复
用GetTextExtend判断一次试试?
zonghenglls 2011-07-30
  • 打赏
  • 举报
回复
算坐标容易,但是跑马灯是从右侧出来,当第一个字滚动到左侧边界的时候,要开始消失,然后接下来的DrawText就不能用原来的字符串来写了,因为这样每次都会从第一个字开始写,达不到消失的效果
psbeond 2011-07-30
  • 打赏
  • 举报
回复
移动坐标就行,不要去掉第一个字DrawText不是有坐标吗?


------------------------------------------------------------------------
feilongjilei 2011-07-30
  • 打赏
  • 举报
回复
在定时器里全部重新刷:1.刷背景 2.刷该次的文字

15,979

社区成员

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

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