Symbian学习笔记(22)

在Symbian中使用皮肤是一个让我这样新手颇觉得费劲的事情。折腾了一天, 把几种情况都试验了一把,总结一下吧。

1.一句话的方法

最基本的一招就是在AppUi中的ConstructL()中加一句话搞定。如下:

void CTestMIMAppUi::ConstructL() { BaseConstructL

(CAknAppUi::EAknEnableSkin);//add your code here...}

用上面这句话基本上能让大部分控件的透明化,显示出系统的皮肤。

但是,有时我们会发现部分控件(比如那个CEikEdwin)仍显示的一个难看的 白底,此时,我们需要做一些额外的工作了。

修改Container的头文件,增加一个成员变量:

 CAknsBasicBackgroundControlContext* iBgContext;

然后在对应的ConstructL函数中初始它:

iBgContext = CAknsBasicBackgroundControlContext::NewL

(KAknsIIDQsnBgAreaMainIdle,aRect,ETrue);

这儿的KAknsIIDQsBgAreaMainIdle你可以选择其它的,不碍事的。

然后, 因为CEidEdwin有一个很方便的成员方法SetSkinBackgroundControlContextL, 所以接下来的代码就简单了:

iEdWin=new(ELeave)CEikEdwin; CleanupStack::PushL(iEdWin); 

iEdWin->SetContainerWindowL(*this);  iEdWin->ConstructL

(); iEdWin->SetSkinBackgroundControlContextL(iBgContext); 

iEdWin->SetExtentToWholeScreen(); iEdWin->SetFocus

(ETrue); iEdWin->ActivateL(); CleanupStack::Pop

(iEdWin);

这样就可以了。别忘了,在析构时delete它。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索控件
一个
,以便于您获取更多的相关知识。

时间: 2025-01-17 20:51:45

Symbian学习笔记(22)的相关文章

Symbian学习笔记

Symbian学习笔记(22) - 关于皮肤的小结 Symbian学习笔记(21)--原来还有这个工具wsdl2cpp,访问webserv Symbian学习笔记(20)--用gSOAP更简单地实现Web Services Clien Symbian学习笔记(19)--初探WebServices API的使用(下) Symbian学习笔记(18)--初探WebServices API的使用(中) Symbian学习笔记(17)--初探WebServices API的使用(上) Symbian学习

Symbian学习笔记(17)——初探WebServices API的使用(上)

很久没有学习Symbian了,今天研究一下如何使用Symbian中提供的WebService框架来SayHello. 从SDK文档中提供的资料来看这个接口似乎有点复杂,包括了Connection API.Description API和Manager API三套东西,此外还涉到了XML的解析之类的一些API的应用. 阅读了一下它的例子程序(S60Ex目录下的AddressBook),让我更晕乎了.怎么跟自己平时使用的WebService不一样了? 在SDK文档中关于CSenServiceConn

Symbian学习笔记(8)——再尝试着做一个数独游戏

仍是做一个同样界面同样功能的数独游戏,但是所花费的时间远远超出我用Android或者J2ME来做同样的事情,当然运行效率也很明显(我将J2ME实现的数独放在N73上跑过,因为重绘屏幕的代码没有优化,所以效果不好,但同样的算法在BREW或者Symbian上就跑得相当顺畅). 这次我主要谈谈在做这个 Symbian版本中遇到的几个问题,希望以后自己不要再犯同样的错误了. 1.多视图的应用程序框架的问题 我用的是Carbide C++ IDE环境,不知道为什么不能生成多视图的架子,所以只能在Hello

Symbian学习笔记(5)——加载JPEG图像的方法

上次学习的是从MIF和MBM文件中加载图像,一般在程序中出现的图片都可以用这个方法,但有一点点遗憾,它只能使用svg或bmp格式,BREW或J2ME中的资源却多为png格式的. 如果想在symbian中使用jpg或者png图片,则需要用到symbian提供的那个Multimedia ICL库里的类了.其中比较重的是CImageDecoder类,提供了对图像进行解码的功能. 来看看如何使用它的吧.先定义两个字串: _LIT(KJPEGFile,"C:\\Data\\me.jpg"); _

Symbian学习笔记(4)——在GUI应用中使用图像

学习一下如何修改GUI程序中的图标与如何加载图像. 与2nd.不同的是,3rd.支持svg格式的可缩放图标(最大好处在于一个图标搞定,以前用bmp时为了应用程序的菜单图标得要做四个小图标).而且,现在有了一种新的图像打包格式mif(这名字咋跟BREW中那个MIF一样啊).虽然还支持以前的MBM方式但是不建议使用了. 要在应用程序中增加图像图标资源,过程如下: 第一步,先将要加入的图像放在工程的/gfx目录下,如: qgn_menu_DemoUI.svg splash2.bmp 前面一个就是应用程

Symbian学习笔记(2)——基本概念

第一次打开SymbianC++的程序源代码,第一感觉就是"这是C/C++吗?咋这么眼生啊". 看代码看书,才算是稍稍明白了一点,其实无非就是typedef罢了,symbian可比brew定义了更多的东西. 这是以后干活的基础,所以做个笔记,省得忘了. 一.基本数据类型 这个比较简单,都在e32def.h中写着呢.也就是以下这几个类型要注意一下,以后照着写罢了,含义也很明了,不用多说. typedef void TAny; typedef signed char TInt8; typed

Symbian学习笔记(21)——原来还有这个工具wsdl2cpp,访问webservice也很简单

在论坛里看到有人问使用wsdl2cpp生成代码,才知道原来symbian提供了一个辅助工具来生成webservice client的代码,比起我上回折腾的自己参考AddressBook例子做的webservice客户端要简单多了,类似于gSOAP的使用. 首先,去forum.nokia.com.cn搜一下WSDL-to-C++_for_S60,这是用于Carbice Vs的工具,不过也可以独立安装,用命令行来生成所需要的代码.下载安装即可. 第二步,运行它的wsdl2cpp工具,得到一些源代码,

Symbian学习笔记(20)——用gSOAP更简单地实现Web Services Client

昨天折腾了一下那个gSOAP,发现这东西比Symbian自带的WebServiceAPI更简单方便,推荐使用! gSOAP的官方网站是:http://gsoap2.sourceforge.net/ 具体使用方法不多说,因为网上GOOGLE 一下很多资料.下面只对在symbian环境下使用略说几点. 我下载的是最新版的v2.7.10,下载的压缩包里就有一个symbian目录,里面是在symbian的例子,可以参考. 试着做了一个HelloWorld,还是访问前面做的那个web service,按照

Symbian学习笔记(19)——初探WebServices API的使用(下)

继续,看看如何取出结果值,就是<HelloWorldResult>Hello World</HelloWorldResult>中的字串HelloWorld,这个代码在CHelloWorldResult中: view plaincopy to clipboardprint? TPtrC8CHelloWorldResult::Result() { CSenElement*pElement=AsElement().Element(KHelloResult); if(pElement) {