您的位置:首页 > 其它

Symbian 如何设置应用程序皮肤

2010-03-16 16:37 267 查看
http://blog.sina.com.cn/s/blog_5ccfd2d50100ed7j.html

今天在别的帮助下,终于完成了,实现了自己想要的效果,

通常我们做创建自己的窗口时,都需要自己的窗口皮肤和系统的皮肤是一致的.
但是默认的情况下,会是白底的.我们当然希望最高的境界是,当前应用程序的
窗口总是和系统风格的皮肤是一致的.我们如何做到呢?让我们接下来看看吧!

1.初始化背景内容
***::ConstructL()
{
iBackground = CAknsBasicBackgroundControlContext::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这个即可.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: