How to create a simple listbox in Symbian C++
Article Metadata
Here is the code snippet to create a simple listbox:
In mmp file:
LIBRARY avkon.lib
LIBRARY eikcoctl.lib
LIBRARY eikctl.lib
LIBRARY bafl.lib
In the header file:
// FORWARD DECLARATION
class CEikColumnListBox;
// ...
class CMyAppContainer : public CCoeControl
{
// ...
public: // New functions
/**
* Create the listbox.
*/
void CreateListBoxL();
/**
* Initialize the listbox.
*/
void InitListBoxL();
private: // Data members
/**
* The listbox object
* Owned by CMyAppContainer.
*/
CEikColumnListBox* iListBox;
};
In the cpp file:
#include <eikclb.h> // for CEikColumnListBox
#include <aknlists.h> // for CAknSingleStyleListBox
#define KGranularityOfArray 10;
// ----------------------------------------------------------------------------
// CMyAppContainer::CreateListBoxL()
// Create the listbox.
// ----------------------------------------------------------------------------
//
void CMyAppContainer::CreateListBoxL()
{
//Delete the list box if already exists.
if ( iListBox )
{
delete iListBox;
iListBox = NULL;
}
// listbox instance
iListBox = new (ELeave) CAknSingleStyleListBox();
iListBox->ConstructL(this);
iListBox->SetContainerWindowL(*this);
// add scrollbars to listbox
iListBox->CreateScrollBarFrameL(ETrue);
iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto );
const TPoint aPoint(0,0);
const TSize aSize(180,150);
//most important line , else the list box simply disappears
iListBox->SetExtent(aPoint,aSize);
//Fill list box with the data
InitListBoxL();
iListBox->ActivateL();
iListBox->DrawNow();
}
// ----------------------------------------------------------------------------
// CMyAppContainer::InitListBoxL()
// Initialize the listbox.
// ----------------------------------------------------------------------------
//
void CMyAppContainer::InitListBoxL()
{
// construct listbox item array
CDesCArray *itemList = new (ELeave) CDesCArrayFlat(KGranularityOfArray);
itemList->AppendL(_L("\tFirst item\t\t"));
itemList->AppendL(_L("\tSecond item\t\t"));
// set items and ownership
iListBox->Model()->SetItemTextArray(itemList);
iListBox->Model()->SetOwnershipType(ELbmOwnsItemArray);
iListBox->SetCurrentItemIndex(0);
iListBox->SetFocus(ETrue);
iListBox->HandleItemAdditionL();
}
Other Related Links
- List box example
- Querying selection with list
- TSS000647 - Applying actions on list box items
- MDesCArray
- How to add Marquee effect in ListBox
- How to add ScrollBar in ListBox
- How to add additional data to the list box?
- Listbox creation using resource
- How to scroll a customized list box without using a scroll bar


(no comments yet)