请各位一定要帮忙,否则刚就业就要失业了.
我参照例子grid,做了一个menu grid 不知为什么就是加不了图片.请各位指点一二,最好有代码.
下面是我的部分代码:
void CIconContainer::GridMenuL()
{
iGrid = new ( ELeave ) CAknGrid;
CAknPopupList* popupList = CAknPopupList::NewL( iGrid,
R_AVKON_SOFTKEYS_SELECT_BACK );
CleanupStack::PushL( popupList );
popupList->SetTitleL( _L("Emoticons") );
iGrid->ConstructL( popupList, CEikListBox::ELeftDownInViewRect );
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC(reader, R_SELECTIONGRID);
iGrid->ConstructFromResourceL(reader);
iGrid->ActivateL();
TInt popupOk = popupList->ExecuteLD();
CleanupStack::Pop();
// TRect rect = Rect();
GridCellL();
AddIcons();
}
void CIconContainer::GridCellL()
{ AknListBoxLayouts::SetupStandardGrid( *iGrid );
AknListBoxLayouts::SetupFormGfxCell(
*iGrid, // Reference to grid control
iGrid->ItemDrawer(),// Pointer to the item drawer
0,
0,
0,
0,
0,
50,
32,
TPoint(0,0),
TPoint(32, 32));
}
void CIconContainer::AddIcons()
{ CArrayPtr< CGulIcon >* icons = new(ELeave) CAknIconArray(3);
CleanupStack::PushL( icons );
_LIT(KMbmPath, "\\resource\\apps\\Icon.mbm");
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL( KMbmPath,
0);
CleanupStack::PushL( bitmap );
Load the mask for mail icon
CFbsBitmap* mask = iEikonEnv->CreateBitmapL( KMbmPath,
1);
CleanupStack::PushL( mask );
// Append the mail icon to icon array
// icons->AppendL( CGulIcon::NewL( bitmap, mask ) );
// CleanupStack::Pop(2); // bitmap, mask
// Attach icon array to grid’s item drawer
iGrid->ItemDrawer()->FormattedCellData()->SetIconArrayL( icons);
CleanupStack::Pop();
delete iGrid;
iGrid=NULL;
}