您的位置:首页 > 其它

Symbian 如何设置应用程序皮肤

2009-10-13 16:29 211 查看
 通常我们做创建自己的窗口时,都需要自己的窗口皮肤和系统的皮肤是一致的.

但是默认的情况下,会是白底的.我们当然希望最高的境界是,当前应用程序的

窗口总是和系统风格的皮肤是一致的.我们如何做到呢?让我们接下来看看吧!

1.初始化背景内容

***::ConstructL()

{

iBackground =
CAknsBasicBackgroundCont

rolContext::NewL(KAknsIIDQsnBgAreaMain,
iUserRect,

EFalse);

}

2.//调整大小

void ***::SizeChanged()

    {

    // TODO: Add
here control resize code etc.

   
iBackground->SetRect(iUserRect);

    }

3.//设置所有的控制按背景重绘

TTypeUid::Ptr ***::MopSupplyObject(TTypeUid aId)

{

    
if (iBackground )

    
    {

    
    return
MAknsControlContext::SupplyMopObject( aId, iBackground );

    
    }

    
return CCoeControl::MopSupplyObject(aId);

}

4.//绘制

void ***::Draw(const TRect& aRect) const

{

   
MAknsSkinInstance* skin = AknsUtils::SkinInstance();

   
MAknsControlContext* cc =
AknsDrawUtils::ControlContext(this);

   
AknsDrawUtils::Background(skin, cc, this, gc, aRect,
KAknsDrawParamDefault);

}

上述代码已经在N73/N95/E71均测试通过了.

这也是设置背景的常用技巧,但是有些时候我们希望设置全屏的窗口,就会遇到问题了.

如果这样的话,我们可以KAknsIIDQsnBgAreaMain将这个ID换成KAknsIIDQsnBgScreen这个即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  symbian 测试