原文地址:http://www.software-toolbox.info/developer/SymbianOS/02151948975.htm
终于对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可以通过动态添加和资源文件生成
动态添加
TBuf<32>item;
_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信息<akniconarray.h></akniconarray.h>
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的时候要注意格式
TBuf<32>item;
_LIT(KItemName1,"234234234234");
item.Format(_L("%d\t%S "),0,&KItemName1);
listBoxItems->AppendL(item);
在SymbianOS(series 60平台) 下有很多格式的ListBox,更详细的信息可以在
http://perso.wanadoo.fr/klisa/3650/ListBox/page01.html 得到。
分享到:
相关推荐
在Windows编程中,ListBox控件是一种常见的用户界面元素,它允许用户从一组选项中选择一个或多个项目。在各种应用程序中,我们可能需要在两个ListBox之间交换数据,以实现更复杂的用户交互。这个主题主要涉及如何在...
ListBox控件是Windows应用程序开发中常见的一种用户界面元素,它允许用户从一组预先定义的选项中选择一个或多个项。在Visual Basic (VB)中,系统自带的ListBox控件虽然功能强大,但在视觉效果和自定义程度上可能无法...
Listbox 控件的使用方法 Listbox 控件是 Windows Forms 应用程序中常用的控件之一,它可以显示大量的数据,并提供了灵活的数据绑定和样式设置功能。下面是 Listbox 控件的使用方法和常用属性介绍: 1. 创建 ...
VS2010写的两个Listbox控件,可以单选、多选列表中的行,通过Button按钮移动到另一个Listbox,还可以鼠标双击一行,移动到另一个表中;代码全部添加清晰的注解,每一步都清晰明了,不好用随便喷。部分代码: //获取...
### ListBox控件用法详解:实现数据在两个ListBox间的多条移动 #### 一、概述 在.NET框架中,ListBox是一种常用的用户界面组件,用于显示一个项目列表供用户选择。ListBox支持多种选择模式,其中“Multiple”模式...
ListBox控件是Windows Forms和WPF等编程环境中常用的一种组件,用于展示一系列可选择的项。在默认情况下,ListBox控件的外观由操作系统或应用程序的主题决定。然而,开发者有时需要自定义ListBox的显示样式,例如...
在Windows Forms应用开发中,ListBox控件是一种常用的数据展示组件,它可以用来显示一系列的项目,供用户选择。本文将深入探讨如何在两个ListBox控件之间实现数据交换,这对于数据操作和用户交互有着重要的作用。...
在Windows Forms或WPF应用程序开发中,ListBox控件是一个常用且功能强大的组件,它允许用户从一系列选项中进行选择。本教程将详细讲解如何利用ListBox控件来实现一个简单的餐馆点菜功能。在这个实例中,我们将模拟一...
该工作簿内实现了通过鼠标滚轮控制 combox 或者 listbox 控件选项的方法。该工作簿内包含一个 MouseWheel 模块,该模块捕捉了鼠标滚轮事件,并通过hook钩子使其达到操作 combox 或者 listbox 变更选项的目的。
C#中实现两个listBox控件之间传递数据的源代码
首先打开资源视图,找到相应的对话框资源,然后从工具箱中拖放ListBox控件到对话框上。记得为其分配一个ID,例如IDC_LISTBOX1。 3. **初始化List Box** 在对话框类的初始化成员函数( OnInitDialog() )中,我们...
在Windows编程中,`ListBox`控件是一种常用的数据展示组件,通常用于列出一系列文本项供用户选择。然而,仅显示文本有时无法满足所有需求,尤其是当需要为每个条目添加视觉标识时。在这个主题中,我们将深入探讨如何...
然而,系统默认的ListBox样式可能无法满足所有设计需求,因此,开发者有时会需要自定义ListBox的外观,这就是"自绘的ListBox控件"。 自绘ListBox控件允许程序员通过重写或扩展控件的绘制方法,实现自定义的渲染效果...
ListBox控件是Windows Forms开发中常见的一种用户界面元素,它允许用户从一组预定义的选项中进行选择。在C#编程环境中,ListBox提供了丰富的功能,包括添加、删除、选择和显示列表项。本实例源码将详细介绍如何在C#...
利用ListBox控件实现数据源字段的选择,从左边的列表中挑选数据移动至右侧列表中,当然也可从右侧移动至左边的列表中。大家在浏览网页的时候就会发现,有些招聘网站在选择职位的时候就有类似的功能,只不过是基于...
### ListBox控件设置不同的背景色 在Web开发中,为了提高用户体验并使界面更加美观,开发者经常需要对页面中的各种控件进行个性化设置。其中,`ListBox`控件是一种常用的UI元素,用于显示一系列可选的项目。对于`...
标题中的“可以拖动的LISTBOX控件”指的是在编程环境中,特别是Windows应用程序开发中,使用的一种具有拖放功能的列表框控件。通常,列表框(LISTBOX)是一种用户界面元素,允许用户从一系列选项中进行选择。而这里...
**MFC的ListBox控件示例小程序** 在Windows应用程序开发中,MFC(Microsoft Foundation Classes)是一个强大的C++库,它提供了对Windows API的封装,简化了编程过程。本示例程序是用MFC框架创建的一个基于ListBox...