Here's the answer to yet another question asked on the
Windows Mobile Developer Center Forums: How to implement a text ticker. The request implied for a flicker-free implementation, so a memory bitmap is required. This bitmap is generated whenever the screen changes size (
CTextTickerView::OnSize) or when the text itself changes (
CTextTickerView::SetTickerText). To calculate the text size when printed with the given font, a call is made to
CDC::GetTextExtent which returns both the height and the width of the text in pixels. The off-screen is then created using the screen width and the text height plus a few padding pixels (
CTextTickerView::ResizeBitmap).
Scrolling of the ticker is achieved through a timer that shifts the ticker printing position every 100 ms. The ticker is painted by invalidating its own rectangle and the whole painting process is performed on
CTextTickerView::OnPaint. Note how the ticker text gets painted a second time tailing the first instance in order to give a continuous feel. Also note how the
x offset is incremented by the timer handler. Go and have a look at the code!
Sample code:
TextTicker.zip (114 KB)
No comments:
Post a Comment