分享一个漂亮的Symbian S60 3rd 自定义列表框控件

效果图如下:

 

(1)支持显示Tab风格及普通风格

(2)支持多列显示

(3)支持多选或单选

(4)支持显示图标或不显示

(5)支持自定义皮肤颜色

 

如何使用:

yourContainer.h 中添加如下代码:

 

class CMltItemListBox;  //声明

 

//添加成员变量

CMltItemListBox* iListBox;
CMltItemListBox* iTabCtrl;

 

yourContainer.cpp 中添加如下代码:

#include "MultiItemListBox.h"

 

//创建列表

void CYourContainer::CreateListL()
{
    TListBoxSkin tabSkin;
    tabSkin.iBgBrushColor = TRgb(255, 255, 255);
    tabSkin.iBgPenColor = TRgb(230, 230, 230);
    tabSkin.iBgLinePenColor = TRgb(33, 65, 122);
    tabSkin.iFocusBrushColor = TRgb(202, 224, 252);
    tabSkin.iTextColor = TRgb(128, 128, 128);
    tabSkin.iTextFocusColor  = TRgb(68, 68, 68);
    iTabCtrl = CMltItemListBox::NewL(EHorizontal, this);
    iTabCtrl->SetSkin(tabSkin);

   

    TListBoxSkin listSkin;
    listSkin.iBgBrushColor = TRgb(255, 255, 255);
    listSkin.iBgPenColor = TRgb(230, 230, 230);
    listSkin.iFocusBrushColor = TRgb(202, 224, 252);
    listSkin.iTextColor = TRgb(128, 128, 128);
    listSkin.iTextFocusColor  = TRgb(68, 68, 68);
    iListBox = CMltItemListBox::NewL(EMultiItem, this);
    iListBox->SetSkin(listSkin);
}

 

//创建图标

void CYourContainer::SetupListIconsL()
{
    TFileName fileName;
    fileName.Copy(KMbmFilePath);

    RArray<TInt> mbgArray;
    mbgArray.Append(EMbmDesktopshowUnreadnews);
    mbgArray.Append(EMbmDesktopshowUnreadnews_mask);
    mbgArray.Append(EMbmDesktopshowHavereadnew);
    mbgArray.Append(EMbmDesktopshowHavereadnew_mask);

    iListBox->AddIcons(fileName, mbgArray);
    mbgArray.Close();

}

 

void CYourContainer::SetupListItemsL()
{

    TInt strIndex = R_NEWS_1;
    HBufC* str = NULL;
    TBuf<KMaxListItemStrLen> buf;
    _LIT (KStrHeadRead, "1/");              // 1表示显示哪个图标,如果不用图表就不写
   
    for (TInt i = 0; i< 10; i++)
    {
        //aString.Format(KStringHeader(), i);
        str = iEikonEnv->AllocReadResourceAsDes16LC(strIndex);
        buf.Append(KStrHeadRead);
        buf.Append(*str);
        buf.Append(_L("| 2009-7-15"));
        iListBox->AddItemL(buf);
        buf.Zero();
        strIndex++;
        CleanupStack::PopAndDestroy();
    }

    for (TInt i = 0; i< 8; i++)
    {
        buf.Append(_L("/Sport"));
        buf.AppendNum(i);
        iTabCtrl->AddItemL(buf);
        buf.Zero();
    }

}

 

另外不要忘记设置控件的区域, 返回控件指针及个数等, 其他一些列表的操作请参见MultiItemListBox.h

 

下载地址: http://download.csdn.net/source/1645552

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值