Symbian应用程序更换系统控件背景

来源:互联网 发布:java 调用chart.js 编辑:程序博客网 时间:2024/05/17 01:40

很多开发者都会为界面、控件而发愁。

其中,对系统控件的运用是开发者纠结最多的问题。

每个平台都有自己的系统控件,系统控件是由系统开发商开发的,各个方面都很成熟,节省开发时间。

但也有很严重的问题,如:界面陈旧,很难进行定制与修改。

如果自己写控件会很耗时、耗力,而且效果一般(有限的设计、美工与开发时间)。

熟练应用各种系统控件对快速开发很有帮助。

 

//实例化各工具类

MAknsSkinInstance* skin =AknsUtils::SkinInstance();

CAknsItemDef* def;


//实际的操作很简单,就两步。

//修改CBA背景——KAknsIIDQsnBgAreaControlCBA的索引,换哪一部分的背景就用哪一部分索引。

//fileName图片文件路径,aCbaIndex为待替换的CBA图片索引。

def =AknsUtils::CreateBitmapItemDefL(KAknsIIDQsnBgAreaControl, fileName, aCbaIndex);

skin->SetLocalItemDefL(def);

       

//菜单弹出后的CBA

def =AknsUtils::CreateBitmapItemDefL(KAknsIIDQsnBgAreaControlPopup, fileName,aCbaIndex);

skin->SetLocalItemDefL(def);

 

//修改弹出菜单背景

def =AknsUtils::CreateBitmapItemDefL(KAknsIIDQsnFrPopup, fileName, aMenuIndex);

skin->SetLocalItemDefL(def);

 

//修改状态面板背景

def = AknsUtils::CreateBitmapItemDefL(KAknsIIDQsnBgAreaStatus,iPicfileName, aStatuPaneIndex);

skin->SetLocalItemDefL(def);


 //修改列表背景

 def =AknsUtils::CreateBitmapItemDefL(KAknsIIDQsnBgAreaMainListGene, iPicfileName,aImgIndex);

 skin->SetLocalItemDefL(def);

       

 剩下的自己去查索引吧。。。

 

  注意:

             (1) 尽量分开设定,不要连续设定多个,有时会失效。

             (2) 设定菜单弹出后的CBA和菜单背景比较特殊,设定前必须先将菜单弹出至少一次(我也很困惑)。

                      弹出菜单的方式有很多——如:对话框、进度条、提示等。

                      例如:

                      //先弹出对话框:

                     CAknMessageQueryDialog* dlg = new(ELeave) CAknMessageQueryDialog();

                     dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);

                     HBufC* title = iEikonEnv->AllocReadResourceLC(R_HTMLLIST_HELP);

                     dlg->QueryHeading()->SetTextL(*title);

                     CleanupStack::PopAndDestroy(); //title

                     HBufC* msg =iEikonEnv->AllocReadResourceLC(R_HTMLLIST_HELPTEXT);

                     dlg->SetMessageTextL(*msg);

                     CleanupStack::PopAndDestroy(); //msg

                     dlg->RunLD();

                     //再进行菜单弹出后的CBA与菜单背景

               

 最终实现效果:

             

      --[[User:Phoenixcuibj|Phoenixcuibj]] 03:28, 5 January 2011 (UTC) 欢迎补充指正!

原创粉丝点击