WEB开发网
开发学院手机开发Symbian 开发 Symbian 中关于 ListBox 的编程使用 阅读

Symbian 中关于 ListBox 的编程使用

 2010-02-26 16:03:00 来源:WEB开发网   
核心提示:在Symbian系统中,ListBox的使用是比较复杂的,Symbian 中关于 ListBox 的编程使用,也是比较常用的,应该先从最简单的CAknSingleStyleListBox入手来尝试,具体编程如下:先声明一个列表组件:CAknSingleStyleListBox* iListBox;然后在Containe

在Symbian系统中,ListBox的使用是比较复杂的,也是比较常用的,应该先从最简单的CAknSingleStyleListBox入手来尝试。基本实现步骤就是:先声明一个列表组件 CAknSingleStyleListBox* iListBox,然后在Container的ConstructL中去创建它,接着在合适的地方需要去给ListBox增加内容。具体编程如下:

先声明一个列表组件:CAknSingleStyleListBox* iListBox;

然后在Container的ConstructL中去创建它:

void CUniNewsAppContainer::ConstructL(const TRect& aRect)

{

CreateWindowL();

//add your code here ...

//construct a listbox

iListBox = new(ELeave) CAknSingleStyleListBox;

iListBox->SetContainerWindowL( *this);

iListBox->SetListBoxObserver(this);

iListBox->ConstructL(this,EAknListBoxSelectionList|EAknListBoxLoopScrolling);

iListBox->CreateScrollBarFrameL(ETrue);

iListBox->ScrollBarFrame()->SetScrollBarVisibilityLCEikScrollBarFrame::EOn,CEikScrollBarFrame::EOn);

iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue);

iListBox->SetRect(aRect);

SetRect(aRect);

ActivateL();

}

这里有几句话:

一是SetScrollBarVisibilityL设置使用滚动条;

二是ItemDrawer()->ColumData()->EnableMarqueeL()让选中的文本超长后可以左右滚动。

有一点比较奇怪,我得先设置ListBox的Rect才能设置整个Container的Rect?否则ListBox会不占整个主面板的位置。

接着在合适的地方需要去给ListBox增加内容:

void CUniNewsAppContainer::InitListBox(TInt tabId)

{

if(iListBox==NULL) return;

CDesCArray* list = static_cast( iListBox->Model()->ItemTextArray() );

TBuf<256> str;

list->Reset();

CUniNewsAppView * appView = STATIC_CAST(CUniNewsAppUi*,iCoeEnv->AppUi())->iAppView;

RArray* rc =

1 2 3  下一页

Tags:Symbian 关于 ListBox

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