Symbian多选列表框开发实例
2010-08-11 12:25:00 来源:WEB开发网本小节的MulsList示例程序以CAknDoubleStyleListBox类为例,演示了如何动态创建多选列表框以及批量删除列表项。(在这里我们还是以MyMarkList示例程序为例,进行改编)
1.创建多选列表框
多选列表框在创建时必须指定“EAknListBoxMultiselectionList”,添加数据时注意使用正确的格式串,添加图标时必须保证表示选中状态的图标和表示未选中状态的图标分别是图标数组的第一个和第二个元素(即图标要相对应即可)。主要修改的代码如下:
void CMyMarkListContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
// Create listbox
iListBox = new(ELeave)CAknDoubleGraphicStyleListBox;
iListBox->SetContainerWindowL(*this);
iListBox->ConstructL(this,EAknListBoxMultiselectionList);
iListBox->SetListBoxObserver(this);
// Load items
CTextListBoxModel* model = iListBox->Model();
CDesCArray* array =
static_cast
//_LIT(KItemFormat, "1 Record%d %d");
// "Icon1 Label1 Label2" 如果写“1”表示icons(1)的图标作为最前面的Icon,这里还可以为0
//如果是11.3.4MulsList则使用下面的格式串
_LIT(KItemFormat,"1 Record%d %d 2");
TBuf<32> record;
TInt i = 1;
for (i = 1; i<9 ; i++)
{
record.Format(KItemFormat(), i, 100-i, 1);
array->AppendL(record);
}
// Load icons
CEikonEnv* eikonEnv = CEikonEnv::Static();
TFileName mbmFile = eikonEnv->EikAppUi()->Application()->BitmapStoreName();
CArrayPtr
CleanupStack::PushL(icons);
// icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistTick, EMbmMymarklistTickmask));
// icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistStar, EMbmMymarklistStarmask));
更多精彩
赞助商链接