终于对Series 60的ListBox控件有了一个比较清晰的了解.

说真的这几天看这样的代码真有点赶鸭子上架.

我在放ListBox控件的容器类中声明了一个CEikColumnListBox* _listbox;

在其ConstructL函数中构造一个CEikColumnListBox的实例:

_listBox = new(ELeave) CAknSingleStyleListBox;

_listBox->ConstructL(this);

_listBox->SetContainerWindowL(*this);

_listBox->CreateScrollBarFrameL(ETrue);

_listBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOn,CEikScrollBarFrame::EAuto);

因为需要处理listbox的Keypress事件.

_listBox->SetListBoxObserver(this);

所以这里的容器类的实例必须扩展public MEikListBoxObserver.

头文件必须包含eiklbo.h.

当然需要实现MEikListBoxObserver中的虚函数:

void CTestListContainer::HandleListBoxEventL(CEikListBox* aListBox,TListBoxEvent aEventType)

这里处理KeyPress事件.

需要aEventType==EEventEnterKeyPressed.

如果需要知道选中的是某一个Item.

TInt number(_listBox->CurrentItemIndex());

number是从0开始的一直到ListBox的Item总数减一的整数.

上下移动选择的处理是在函数

TKeyResponse CTestListContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType){

if (aType!=EEventKey)

{return EKeyWasNotConsumed;}

f (_listBox){

return _listBox->OfferKeyEventL(aKeyEvent, aType);

}

else {return EKeyWasNotConsumed;}

}

这个函数主要是处理按键事件,它并不是专门针对ListBox,当然在这里是处理ListBox上下移动按键。

ListBox的Item可以通过动态添加和资源文件生成

动态添加

TBufitem;

_LIT(KItemName1,"234234234234");

//这里有个风格格式

item.Format(_L(" %S "),&KItemName1);

listBoxItems->AppendL(item);

_LIT(KItemName2,"rtetertet");

item.Format(_L(" %S "),&KItemName2);

listBoxItems->AppendL(item);

_LIT(KItemName3,"adsfasfasdf");

item.Format(_L(" %S "),&KItemName3);

listBoxItems->AppendL(item);

_listBox->HandleItemAdditionL();

_listBox->SetCurrentItemIndexAndDraw(listBoxItems->Count()-1);

_listBox->ActivateL();

这里是对ListBox框的一些初步了解

第一感觉在Symbian下因为不是可视化编程,所以添加控件比较麻烦

但Symbian的程序结构的确是非常合理

而且我很高兴它也是基于MVC的

当然列表框也是可以加图标的

很简单

new了一个CAknSingleLargeStyleListBox的列表框

_listBox=new (ELeave)CAknSingleLargeStyleListBox;

建立一个数组来保存icon信息

CAknIconArray* iconList=new (ELeave)CAknIconArray(10);

CleanupStack::PushL(iconList);

把图标信息添加到数组

iconList->AppendL(iEikonEnv->CreateIconL(KIconsFilename, EMbmTestlistGolgo2,EMbmTestlistGolgo2m));

加完了不要忘了CleanupStack::Pop();

EMbmTestlistGolgo2和EMbmTestlistGolgo2m是在.mbg里定义的

把一些位图放到一个.mbm文件里访问,每个位图资源都有一个ID

当然把位图放到.mbm要在.mmp文件里定义

START BITMAP testlist.mbm

TARGETPATH systemapps estlist

HEADER

SOURCEPATH ..\bmp

SOURCE C12 golgo2.bmp

SOURCE C12 golgo2m.bmp

END

给listbox加上图标

我用的是

_listBox->ItemDrawer()->ColumnData()->SetIconArray(iconList);

另外对于CEikFormattedCellListBox扩展的ListBox

_listBox->ItemDrawer()->FormattedCellData()->SetIconArray();

_listBox->ItemDrawer()->FormattedCellData()->SetSubCellAlignmentL(2,CGraphicsContext::ELeft);

当然最后添加item的时候要注意格式

TBufitem;

_LIT(KItemName1,"234234234234");

item.Format(_L("%d\t%S "),0,&KItemName1);

listBoxItems->AppendL(item);

在SymbianOS(series 60平台) 下有很多格式的ListBox,更详细的信息可以在

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1479162

listbox java_ListBox控件相关推荐

  1. 解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效

    C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个DataGrid.ListBox.Listview(控件本身有scrollviewer)的时候,我们本想要的效果 ...

  2. 《实用VC编程之玩转控件》第7课:ListBox 列表控件

    本文转载自 VC驿站: https://www.cctry.com/thread-297429-1-1.html 1.向列表框控件添加数据: a.向列表框的结尾添加数据: m_ListBox.AddS ...

  3. WPF 控件专题 ListBox 控件详解

    1.ListBox 介绍 ListBox 列表控件. ListBox 是一个 ItemsControl,这意味着它可以包含任何类型的对象的集合 (,例如字符串.图像或面板) . 一个 ListBox ...

  4. html中listbox效果,listbox控件的使用

    VB的listbox控件怎么使用 每次我点击一个图片时,怎么让listbox.list加载一个数字 如我点4张 它的假设Listbox控件名字是List1: List1.Clear '清空列表中所有元 ...

  5. WPF ListBox控件

    WPF提供了许多包装集合的控件.这里包括了ListBox列表控件.ComboBox组合框控件,还有其他的更多的空间我们就不介绍了. ListBox是个典型的ItemsControl. 首先,我们看看L ...

  6. 一步一步学Silverlight 2系列(2):基本控件_转载

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  7. Web 窗体控件简介

    概述  Active Server Pages+ (ASP+) 框架,也称为 Web 窗体,可用来创建可编程的网页,以便将它们作为总体 Web 应用程序的组成部分.Web 窗体在以下方面简化了 Web ...

  8. C#--窗体控件(选择类控件)

    文章目录 下拉组合框控件 复选框控件 单选按钮控件 数值选择控件 选择类控件有下拉组合框(ComboBox)控件.复选框(CheckBox)控件.单选按钮(RadioButton)控件.数值选择(Nu ...

  9. SOUI总结之控件说明

    控件说明 文件包含(include)说明 使用处添加 <include src="layout:dlg_OTP"/> 写法: <include> <w ...

最新文章

  1. INVALID_HANDLE_VALUE的意思和用法
  2. [crypto]-05.1-PKCS PKCS#1 PKCS#7 PKCS#11的介绍
  3. 【HRS项目】Axure兴许问题解决---与SVN结合
  4. html红色星号怎么做_码农的插花艺术:HTML(一)
  5. charles 中文_抓包工具--charles(青花瓷)及获取AppStore数据包
  6. SSM框架搭建+easyui增删改查
  7. 拼多多砍价小程序源码 流量主系列
  8. Spring @Async 注解
  9. matlab 读取视频出现的问题
  10. python入门经典100题
  11. mac osx终端命令大全
  12. Lwm2m的server分析
  13. PCA实现高维数据可视化
  14. Spring 的事务传播机制
  15. GIF微信表情如何制作
  16. 程序员转项目管理,需要做什么?
  17. Unity导弹,射击
  18. 入职一家初创公司第一周的血与泪
  19. CTO谈豆瓣网和校内网技术架构变迁
  20. ADB命令开关闭手机WIFI以及下拉(收缩)状态栏

热门文章

  1. java快速开发平台 1
  2. 邻家汇:广告+精准营销助商超转型升级
  3. underscore入门使用说明
  4. 中控考勤系统登录用户名和密码初始化
  5. android ffmpeg+OpenGL播放yuv+openSL 快放 慢放 视频播放器
  6. 最新彩虹易支付六合一支付插件
  7. Photoshop实例教程:打造Apple光芒…
  8. 一位资深射频工程师的成功轨迹
  9. 作为大学生,如何通过学校认证免费获取正版matlab
  10. xml--include用法--xml文件模块化