怎么实现位图按钮上文字滚动? Topic is solved

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
swallow
Earned a small fee
Earned a small fee
Posts: 20
Joined: Thu Jun 19, 2008 12:57 pm

怎么实现位图按钮上文字滚动?

Post by swallow »

怎么实现位图按钮上文字滚动?像车站的和轻轨上的电子牌一样,滚动显示文字。
liuqi5521
Earned some good credits
Earned some good credits
Posts: 103
Joined: Thu Apr 03, 2008 5:35 am
Location: China
Contact:

Post by liuqi5521 »

1.先用 wxBitmap 载入图片
2、创建一个 wxMemoryDC, SelectObject()选入刚才的位图。
3、用DrawText方法绘制文字,有一定偏移。
4、把位图对象赋值给按钮控件

要想滚动显示文字,在Timer里面不停的做上面的工作,每次改变偏移量。
bloodlee
Experienced Solver
Experienced Solver
Posts: 77
Joined: Thu Nov 30, 2006 10:49 am
Location: Shenzhen, CHN

Post by bloodlee »

如果你的文字是位图的话,我觉得你也可以这样做.
1) 可能要重新写OnPaint()(可以自己写个新的Handler, 专门去管理EVT_PAINT事件).
2) 定时器是一定要用了吧.
2) 位图读到一个wxMemoryDC里. 最后再用wxDC::Blit,把位图的DC帖到BUTTON的DC上. 因为存在前后的拼接, Blit可能要用两次.

以上意见, 仅供参考. :D
swallow
Earned a small fee
Earned a small fee
Posts: 20
Joined: Thu Jun 19, 2008 12:57 pm

解决了,谢谢楼上两位

Post by swallow »

解决了,谢谢楼上两位
Utensil
Moderator
Moderator
Posts: 423
Joined: Sun Feb 03, 2008 11:38 am
Location: China

Re: 解决了,谢谢楼上两位

Post by Utensil »

swallow wrote:解决了,谢谢楼上两位
请问你是根据谁的回答解决了问题的?如果你还不了解如何散分给帮助过你的人,请参考http://forums.wxwidgets.org/viewtopic.php?t=18323

-Utensil
In fascination of creating worlds by words, and in pursuit of words behind the world.

On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
kevin_fly
Experienced Solver
Experienced Solver
Posts: 50
Joined: Tue Apr 15, 2008 12:55 am

Post by kevin_fly »

来这个论坛多次了,也提问过好几个问题,但是今天才知道还可以散分的。
所以:建议在新建一个问题时,可以选择给这个问题悬赏多少分?
还是参考CSDN的做法比较容易让人接受。

希望wxWidgets论坛能够健康快速的发展壮大起来。因为我们的确是需要这方面的帮助。
Utensil
Moderator
Moderator
Posts: 423
Joined: Sun Feb 03, 2008 11:38 am
Location: China

Post by Utensil »

建议在新建一个问题时,可以选择给这个问题悬赏多少分?
其实wxAward只跟等级挂钩,而且等级也只意味着自己头像下面多了一句俏皮话,不像CSDN上面分可以拿来做很多事。所以这里分高意义不大。

一个人如果协助了别人得到1分,如果真的帮助到别人得到5分,有了这样清楚明白的给分规则,别人一看你的wxAward点数,就可以大约了解你帮助别人的程度,这比由提问者随意指定悬赏分要好。

我个人希望,wxAward系统更多是一种娱乐,更多是一种意思意思:提问者用以表达谢意,回答者获得一种精神上的满足——我的回答帮到忙了、被接受了。

Assist和Accept还有另外一个作用:导航。设想有一个人在论坛里搜索自己问题的答案,发现了一个长贴,如果有了Accept,他就知道这个问题有了答案;有了Assist,可以帮助他在长贴中找到有用的信息。

-Utensil
In fascination of creating worlds by words, and in pursuit of words behind the world.

On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
bloodlee
Experienced Solver
Experienced Solver
Posts: 77
Joined: Thu Nov 30, 2006 10:49 am
Location: Shenzhen, CHN

Post by bloodlee »

Utensil wrote:
一个人如果协助了别人得到1分,如果真的帮助到别人得到5分,有了这样清楚明白的给分规则,别人一看你的wxAward点数,就可以大约了解你帮助别人的程度,这比由提问者随意指定悬赏分要好。

我个人希望,wxAward系统更多是一种娱乐,更多是一种意思意思:提问者用以表达谢意,回答者获得一种精神上的满足——我的回答帮到忙了、被接受了。
Hi, Utensil.
支持!!!
swallow
Earned a small fee
Earned a small fee
Posts: 20
Joined: Thu Jun 19, 2008 12:57 pm

Post by swallow »

现在滚动字幕是实现了,可在WCE下闪烁,有什么办法让位图按钮不闪烁?以前我用wxMemoryDC,可现在用的::DrawText(hdc, text, text.length(), &rc, DT_CENTER | DT_CALCRECT);还是写在一个自定义的函数里面的,不知道该怎么办了。
kingkamg
I live to help wx-kind
I live to help wx-kind
Posts: 187
Joined: Tue Apr 08, 2008 1:45 pm

Post by kingkamg »

处理下wxEraseEvent事件,也可以参看:Freeze和thaw两个方法,记得那本中文教材里面有详细讲述,自己看下就知道了 :roll:
Post Reply