Symbian 页面使用系统皮肤

1.在.h中声明
#include <aknscontrolcontext.h>

2.在.h中声明变量
//支持皮肤
MAknsControlContext* iBackGround;


3.在.h中声明函数
    //获取系统当前的皮肤
    TTypeUid::Ptr MopSupplyObject(TTypeUid aId);


4.在.cpp中引入
#include <aknsdrawutils.h>
#include <aknsutils.h>
#include <aknsskininstance.h>
#include <AknsBasicBackgroundControlContext.h> //skin


5.在.mmp中添加
aknskins.lib aknskinsrv.lib aknswallpaperutils.lib


6.在.cpp的ConstructL()的SetRect(aRect);后面添加
iBackGround = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgAreaMain, Rect(), EFalse);


7.在.cpp的析构函数中
delete iBackGround;


8.在.cpp的Draw中
    CWindowGc& gc = SystemGc();
    gc.Clear();
    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
    MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
    AknsDrawUtils::Background(skin, cc, this, gc, aRect);


9.在.cpp中添加函数定义
TTypeUid::Ptr CWorldContainer::MopSupplyObject(TTypeUid aId)
    {
    if (aId.iUid == MAknsControlContext::ETypeId && iBackGround)
        {
        return MAknsControlContext::SupplyMopObject(aId, iBackGround);
        }
    return CCoeControl::MopSupplyObject(aId);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值