在測試的時候用的是CAknDoubleStyleListBox列表
首先,在構造列表的時候,添加EAknListBoxMarkableList:
iListBox->ConstructL(this, EAknListBoxMarkableList);
或者不要這一句,直接在rss檔案裡面:
RESOURCE LISTBOX R_CONTACT_LIST_BOX_LIST_BOX
{
flags = EAknListBoxMarkableList;
}
其次:
添加列表標記表徵圖
void CListtoListBox::SetupListBoxIconsL()
{
_LIT(KmlFile,"z://resource//apps//MultiViews.mbm");
CEikonEnv* eikonEnv = CEikonEnv::Static();
TFileName mbmFile(KmlFile);
CArrayPtr<CGulIcon>* icons = new (ELeave) CAknIconArray(3);
CleanupStack::PushL(icons);
icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMultiviewsList_icon,
EMbmMultiviewsList_icon_mask));
// icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMarklistStar, EMbmMarklistStarmask));
CleanupStack::Pop(icons);
iListBox->ItemDrawer()->FormattedCellData()->SetIconArray(icons);
if (icons != NULL)
{
iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);
}
}
最後:
添加列表標記相關的菜單,
在菜單中添加
.....
MENU_TITLE
{
menu_pane = R_AVKON_MENUPANE_MARKABLE_LIST;
}
.....
處理一下功能表命令
case EAknCmdMark:
case EAknCmdUnmark:
case EAknMarkAll:
case EAknUnmarkAll:
{
iappContainer->HandleMarkCommandL(aCommand); //轉交給容器控制項
break;
}
即可。
另:
const CListBoxView::CSelectionIndexArray* selection =
iListBox->SelectionIndexes();
可以獲得被戳印金鑰的index值的數組。