CAknSingleGraphicStyleListBox
1.在头文件中定义:
//列表框
CAknSingleGraphicStyleListBox * iListBox;
CDesCArrayFlat* iListBoxArray;
2.在.cpp文件ConstructL()中
//创建列表
iListBox = new (ELeave) CAknSingleGraphicStyleListBox(); //创建列表对象指针
iListBox->SetContainerWindowL(*this);//设置容器窗口
iListBox->ConstructL(this, EAknListBoxSelectionList);
iListBox->SetExtent(TPoint(0, 0), TSize(aRect.Size().iWidth,
aRect.Size().iHeight));
//启动列表的滚动条
iListBox->CreateScrollBarFrameL(ETrue);
//关闭了水平的滚动条,垂直的滚动条设置为自动
iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
//添加图标列表
CArrayPtr<CGulIcon>* icons = new (ELeave) CAknIconArray(2);
CleanupStack::PushL(icons);
_LIT(KBitmapPath,"//resource//apps//CallSecretary.mbm");
TFileName bitmapFile(KBitmapPath);
User::LeaveIfError(CompleteWithAppPath(bitmapFile));
//选中
icons ->AppendL(CEikonEnv::Static()->CreateIconL(bitmapFile,
EMbmCallsecretaryTick001, EMbmCallsecretaryTick001_mask));
//未选中
icons ->AppendL(CEikonEnv::Static()->CreateIconL(bitmapFile,
EMbmCallsecretaryNull, EMbmCallsecretaryNull_mask));
CleanupStack::Pop();
iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);
//添加项目列表
iListBoxArray = new (ELeave) CDesCArrayFlat(10);
CTextListBoxModel* model = iListBox->Model();
model->SetItemTextArray(iListBoxArray);
model->SetOwnershipType(ELbmOwnsItemArray);
3.在析构函数中释放
MEM_FREE(iListBox);
4.CountComponentControls()中
return 1;
5.ComponentControl()中
switch (aIndex)
{
case 0:
{
return iListBox;
}
default:
return NULL;
}
6.OfferKeyEventL()中
TKeyResponse ret(EKeyWasNotConsumed);
if (iListBox)
{
ret = iListBox->OfferKeyEventL(aKeyEvent, aType);
return ret;
}
return ret;
7.初始化记录
//清空列表选项
iListBoxArray->Reset();
TBuf<32> sTmpBuf;
sTmpBuf.Append(_L("0/t wangshenghu"));
iListBoxArray->AppendL(sTmpBuf);
if (0 <= nCur)
iListBox->SetCurrentItemIndex(nCur);
iListBox->HandleItemAdditionL();
iListBox->DrawDeferred();
列表框用法CAknSingleGraphicStyleListBox控件的用法
本文介绍如何在 Symbian 平台上使用 CAknSingleGraphicStyleListBox 创建带有图标和文本项的列表框,包括创建、配置、添加图标及文本列表等步骤。





