listbox 中动态创建图标

 图标制作 参照http://hi.baidu.com/plpcha/blog/item/2f1beb18a2b09b0535fa41b8.html

 

在symbian 5th 中,动态 创建listbox 的 图标首先在 mmp文件中 添加图片资源

 

 

START BITMAP **.mbm
 HEADER
 TARGETPATH /resource/apps
 SOURCEPATH ../gfx
 SOURCE c12,1 list_icon.bmp list_icon_mask.bmp
 SOURCE c12 contact.bmp contact_mask.bmp inbox.bmp inbox_mask.bmp keymsg.bmp keymsg_mask.bmp newmsg.bmp newmsg_mask.bmp outbox.bmp outbox_mask.bmp sent.bmp sent_mask.bmp textmsg.bmp textmsg_mask.bmp
END

 

然后在想使用图片的地方

 

SetupListBoxIconsL()
 {
 CArrayPtr< CGulIcon >* icons = NULL;  
 icons = new (ELeave) CAknIconArray( 2 );//图标数量
 CleanupStack::PushL( icons );
 CGulIcon* icontext;
 // for EListBoxEncrptomessagingList_iconIndex
 icontext = LoadAndScaleIconL(
   KEncrptoMessagingFile, EMbmEncrptomessagingTextmsg, EMbmEncrptomessagingTextmsg_mask,
   NULL, EAspectRatioPreserved );
 
 CGulIcon* iconkey;
 // for EListBoxEncrptomessagingList_iconIndex
 iconkey = LoadAndScaleIconL(
   KEncrptoMessagingFile, EMbmEncrptomessagingKeymsg, EMbmEncrptomessagingKeymsg_mask,
   NULL, EAspectRatioPreserved );
 
 CleanupStack::PushL( icontext );
 icons->AppendL( icontext );
 CleanupStack::Pop( icontext );
 
 CleanupStack::PushL( iconkey );
 icons->AppendL( iconkey );
 CleanupStack::Pop( iconkey );
 CleanupStack::Pop( icons );
 
 if ( icons != NULL )
  {
  iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons );
  }
 }

 

动态 添加

 

void LoadMessageItem()
 {
 

 
  _LIT( KItemStartText, "0/t" );
  _LIT( KItemStartKey, "1/t" );
  // New item text
 
 for(TInt i = 0;i<count; i++)
  {
  DEBUG_ASSERT(inbox.GetMessage(i));
  
  TTime time = inbox.GetMessage(i)->GetTime();
  const CRecipientsList& iRecipientsList = inbox.GetMessage(i)->GetRecipientsList();
  

  TBuf<50> itemText;
  if(**)
   {
   itemText.Insert( 0, KItemStartKey() );
   }
  else
   {
   itemText.Insert( 0, KItemStartText() );
   }
  
  itemText.Append(timeText);
  itemText.Append(iRecipientsList.GetRecipients(0)->GetFirstName());
  itemText.Append(iRecipientsList.GetRecipients(0)->GetGivenName());
  // Item array. By default iListBox owns the item array, so no
  // deletion is needed.
  CDesCArray* temArray =
   static_cast<CDesC16ArrayFlat*>(iListBox->Model()->ItemTextArray());
   
   temArray->InsertL( i, itemText );
   
   

  }

 iListBox->HandleItemAdditionL();
 }

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值