WEB开发网
开发学院手机开发Symbian 开发 Symbian ListBox控件 阅读

Symbian ListBox控件

 2010-10-20 08:00:44 来源:WEB开发网   
核心提示:终于对Series 60的ListBox控件有了一个比较清晰的了解.说真的这几天看这样的代码真有点赶鸭子上架.我在放ListBox控件的容器类中声明了一个CEikColumnListBox* _listbox;在其ConstructL函数中构造一个CEikColumnListBox的实例:_listBox = new(

终于对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->OfferKeyEven

Tags:Symbian ListBox 控件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接