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

本文介绍了一种自定义UI组件——多样式列表框,该组件支持多种显示风格(如Tab风格和平铺风格)、多列布局、选择模式、图标显示,并提供了皮肤自定义功能。通过示例代码展示了如何在项目中创建并配置这种列表框。

效果图如下:

 

(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.youkuaiyun.com/source/1645552

内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港&rdquo;工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维&rdquo;向“价值思维&rdquo;转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道&rdquo;组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值