×
Namespaces

Variants
Actions

使用UserSvr::ScreenInfo()获取显示内存的方法在S60第三版中已经废弃

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台: S60 3rd Edition, S60 3rd Edition FP1
S60 3rd Edition FP1
S60 3rd Edition (initial release)

文章
huwell 在 07 Jul 2007 创建
最后由 hamishwillee 在 30 May 2013 编辑
  • 设备, 软件 版本:


Contents

概述

UserSvr::ScreenInfo()提供了地址访问LCD显示帧缓冲。 但使用这个方法来直接绘制屏幕在S60第三版设备上已经不再适用了,可以认为是被废弃了。


详细描述

通过调用UserSvr::ScreenInfo()获得TScreenInfoV01::iScreenAddress地址,可以直接在显示器的帧缓冲进行绘制,在修改完帧缓冲后,显示器需要强制来更新一下。

在S60第三版之前,我们可以通过如下方式进行重绘:

TRawEvent redraw;
 
redraw.Set( TRawEvent::ERedraw );
 
UserSvr::AddEvent( redraw );


在S60第三版上,这个方法就无法立即生效了。屏幕只在街道数据超过范围的通知时才被更新。


解决方案

开发者可以使用CDirectScreenBitmap类进行屏幕直接访问,从而取代通过UserSvr::ScreenInfo()来获取帧缓冲的方法。要获取更多信息,可以参考文档

S60 Platform: Scalable Screen-Drawing How-To


另一种解决方案是,仍然使用老的绘制方法,并通过指定数据超过范围以强制更新屏幕

void CFbsScreenDevice::Update( const TRegion &aRegion );


参考链接

关于Symbian中的位图操作

This page was last modified on 30 May 2013, at 07:36.
46 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×