成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Symbian學習筆記(20)——關于皮膚的小結

系統(tǒng)
在Symbian中使用皮膚是一個讓我這樣新手頗覺得費勁的事情。把幾種情況都試驗了一把,總結一下吧。
在Symbian中使用皮膚是一個讓我這樣新手頗覺得費勁的事情。把幾種情況都試驗了一把,總結一下吧。

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

  1. void CTestMIMAppUi::ConstructL() {<BR> BaseConstructL(CAknAppUi::EAknEnableSkin);<BR>//add your code here...<BR>}<BR>  

  用上面這句話基本上能讓大部分控件的透明化,顯示出系統(tǒng)的皮膚。

  但是,有時我們會發(fā)現(xiàn)部分控件(比如那個CEikEdwin)仍顯示的一個難看的白底,此時,我們需要做一些額外的工作了。

  修改Container的頭文件,增加一個成員變量:

  1. CAknsBasicBackgroundControlContext* iBgContext;  

  然后在對應的ConstructL函數(shù)中初始它:

 

  1. iBgContext = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgAreaMainIdle,aRect,ETrue);  

  這兒的KAknsIIDQsBgAreaMainIdle你可以選擇其它的,不礙事的。

  然后,因為CEidEdwin有一個很方便的成員方法SetSkinBackgroundControlContextL,所以接下來的代碼就簡單了:

 

  1. iEdWin=new(ELeave)CEikEdwin;<BR> CleanupStack::PushL(iEdWin);<BR> iEdWin->SetContainerWindowL(*this); <BR> iEdWin->ConstructL();<BR> iEdWin->SetSkinBackgroundControlContextL(iBgContext);<BR> iEdWin->SetExtentToWholeScreen();<BR> iEdWin->SetFocus(ETrue);<BR> iEdWin->ActivateL();<BR> CleanupStack::Pop(iEdWin);  

  這樣就可以了。別忘了,在析構時delete它。

  2.終極方法顯示系統(tǒng)皮膚

  再進一步,如果控件沒有這么方便的成員讓我們?nèi)ピO置它的背景,也有辦法(參考http://www.newlc.com/Enable-Skin-support-in-your.html)。

  很好辦,先在H文件中增加一個MopSupplyObject的聲明:

 

  1. TTypeUid::Ptr MopSupplyObject(TTypeUid aId);  

  然后實現(xiàn)中,ContructL中就不用iEdWin->SetSkinBackgroundControlContextL了,而是在三個函數(shù)中分別處理:

 

  1. void CTestMIMEdtContainer::Draw(const TRect& aRect) const {<BR> CWindowGc& gc = SystemGc();<BR><BR> MAknsSkinInstance* skin = AknsUtils::SkinInstance();<BR> MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );<BR> AknsDrawUtils::Background( skin, cc, this, gc, aRect );<BR>}<BR><BR>void CTestMIMEdtContainer::SizeChanged() {<BR> if(iBgContext)<BR>  {<BR>    iBgContext->SetRect(Rect());<BR>                 if ( &Window() )<BR>                 {<BR>                         iBgContext->SetParentPos( PositionRelativeToScreen() );<BR>                 }<BR>  } <BR> DrawNow();<BR>}<BR>TTypeUid::Ptr CTestMIMEdtContainer::MopSupplyObject(TTypeUid aId)<BR>{<BR> if (iBgContext )<BR>  {<BR>    return MAknsControlContext::SupplyMopObject( aId, iBgContext );<BR>  }<BR>  return CCoeControl::MopSupplyObject(aId);<BR>}  


 

  這樣也可以讓控件透明顯示出系統(tǒng)皮膚。

  3.顯示自定義皮膚

  來說自定義皮膚的顯示,關鍵在于那個iBgContext成員如何弄出來,前面的NewL()的第一個參數(shù)是系統(tǒng)定義的東西,現(xiàn)在我們需要自定義了。

  同樣,先修改一個H文件,增加一個成員:

  1. TAknsItemID aSkinItem;  

 

  然后實現(xiàn)文件中的ContructL函數(shù)中,我們要從MIF文件中取圖片弄成背景:

 

  1. TFileName iMFileName;<BR> iMFileName.Copy(KMifFileName);<BR> CompleteWithAppPath(iMFileName);<BR> <BR> aSkinItem.iMinor = 0xE2139689;<BR> aSkinItem.iMajor = 1 ;<BR><BR> CAknsItemDef* mainBgItemDef = AknsUtils::CreateBitmapItemDefL(aSkinItem, iMFileName, EMbmTestmimGrid);<BR> AknsUtils::SkinInstance()->SetLocalItemDefL( mainBgItemDef ); <BR> iBgContext = CAknsBasicBackgroundControlContext::NewL(aSkinItem,aRect,ETrue );

  這兒的KMifFileName是定義的資源MIF文件(與其它例子中加載資源圖像的方法類似)。

【編輯推薦】

  1. Symbian每6個月發(fā)布一款新開源操作系統(tǒng)
  2. 微軟建WindowsMarketplace 完善智能機平臺
  3. 大力模仿Android 傳微軟WM6.5可裝插件
責任編輯:龐桂玉 來源: it168
相關推薦

2009-04-12 08:59:05

Symbian諾基亞移動OS

2009-04-12 09:00:08

Symbian諾基亞移動OS

2009-04-12 09:01:05

Symbian諾基亞移動OS

2009-04-12 09:02:32

Symbian諾基亞移動OS

2009-04-12 09:06:00

Symbian諾基亞移動OS

2009-04-12 09:03:50

Symbian諾基亞移動OS

2009-04-12 08:57:50

Symbian諾基亞移動OS

2009-04-12 08:50:08

Symbian諾基亞移動OS

2009-04-12 08:55:18

Symbian諾基亞移動OS

2009-04-12 08:36:09

Symbian諾基亞移動OS

2009-04-12 08:51:50

Symbian諾基亞移動OS

2009-04-12 08:48:47

Symbian諾基亞移動OS

2009-04-12 08:45:32

Symbian諾基亞移動OS

2009-04-12 08:46:43

Symbian諾基亞移動OS

2009-12-15 14:01:10

路由選擇協(xié)議

2009-12-11 11:07:33

靜態(tài)路由策略

2009-12-29 16:02:15

光纖接入網(wǎng)

2011-09-01 14:14:00

jQuery Mobi

2011-08-23 17:33:08

LuaMetatable

2011-08-29 10:01:27

QTWebkit插件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区三区在线观看 | 中文字幕一区在线观看视频 | 91久久久久久久久久久久久 | 日韩在线视频免费观看 | 午夜视频在线免费观看 | 国产精品久久二区 | 亚洲欧美中文日韩在线v日本 | 日本在线精品视频 | 天啪| 一区二区三区中文字幕 | 91香蕉视频在线观看 | 美女视频. | 免费美女网站 | 99国产精品久久久久久久 | 日韩www视频 | 视频一区二区三区在线观看 | 午夜视频网站 | 99免费精品视频 | 日韩视频一区二区 | www国产精| 久久网站免费视频 | 看一级黄色毛片 | 久久久久久久久91 | www312aⅴ欧美在线看 | 久久狠狠| 国产一区二区精品在线 | 久草网站 | 欧美中文字幕一区 | 国产小视频自拍 | 黄免费看| 国产精品视屏 | 日韩国产精品一区二区三区 | 秋霞在线一区 | 亚洲精品一区在线观看 | 亚洲精品视频一区二区三区 | 国产精品一区二区久久久久 | 国产成人综合网 | 国产精品国产精品国产专区不片 | 在线国产99 | 国产精品欧美一区二区 | 精品国产乱码久久久久久牛牛 |