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这个即可.
但是默认的情况下,会是白底的.我们当然希望最高的境界是,当前应用程序的
窗口总是和系统风格的皮肤是一致的.我们如何做到呢?让我们接下来看看吧!
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 如何设置应用程序皮肤
- DNN设置皮肤出错后如何还原默认皮肤
- symbian的应用程序中,如何处理申请内存失败的异常的一些讨论
- 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
- 如何美化你的.net 应用程序 (皮肤使用)
- C#如何设置应用程序启动的对象
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
- Symbian(Set System Time)如何设置修改系统时间
- VB2005中如何如对目标程序进行“应用程序用户设置
- 设置全屏Symbian C++应用程序
- android应用程序如何设置样式
- 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
- C#做窗体应用程序时,对excel涉及的背景色设置,边框设置,数据如何导入等的实现
- 如何使你的应用程序支持皮肤(skin)?
- Qt for Symbian中如何添加头文件路径和打包文件|Qt 窗口外边框设置。
- 如何获取.NET应用程序设置文件user.config的路径
- asp.net如何设置全局主题皮肤
- 如何把一个应用程序或服务注册为windows服务并设置为自启动
- Symbian(Set System Time)如何设置修改系统时间
- 如何给应用程序中的某一个窗口部件单独设置样式表?一个小细节,要设置它的objectName。