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

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

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

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

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

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

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

 

// 实例化各工具类

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) 欢迎补充指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值