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);
}
Symbian 页面使用系统皮肤
最新推荐文章于 2019-06-25 12:07:28 发布