这两天在看SDK EXAMPLE的LISTBOX例子,有一些心得与大家分享,有什么错误请大家指出。
在例子中就用了2个LISTBOX的类,一个是CEikColumnListBox;另一个是CEikFormatte
dCellListBox。它们分别对应SINGLE和DOUBLE两种表现形式。下面用代码来说明一下
。
代码:
CEikColumnListBox* iColListBox;
CEikFormattedCellListBox* iForListBox;
iColListBox = new (ELeave) CAknSingleStyleListBox();
iForListBox = new (ELeave) CAknDoubleGraphicStyleListBox();
iColListBox->SetContainerWindowL( *this );
iForListBox->SetContainerWindowL( *this );
//从资源文件中生成LISTBOX
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC( reader, R_TEST_SINGLE);
iColListBox->ConstructFromResourceL( reader );
CEikonEnv::Static()->CreateResourceReaderLC( reader, R_TEST_DOUBLE);
iForListBox->ConstructFromResourceL( reader );
//设置SCROLLBAR
iColListBox->CreateScrollBarFrameL( ETrue );
iColListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
iForListBox->CreateScrollBarFrameL( ETrue );
iForListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
//适合窗口大小
iColListBox->SetRect(Rect());
iForListBox->SetRect(Rect());
//激活
iColListBox->ActivateL();
iForListBox->ActivateL();
//资源.RSS
RESOURCE LISTBOX r_text_single
{
// 给定要生成LISTBOX的ITEMS
array_id = r_array_single;
// LISTBOX的标示
flags = EAknListBoxSelectionList;
}
RESOURCE LISTBOX r_text_double
{
array_id = r_array_double;
flags = EAknListBoxSelectionList;
}
//请注意r_array_single和r_array_double的不同。
// 就是分割符。
// "0 AAAAAA aaaaaa"最前的0表示在*.mbm中序号为0的图片加到LISTBOX的ITEM前
RESOURCE ARRAY r_array_single
{
items =
{
LBUF
{
txt = " aaaaaa";
},
LBUF
{
txt = " bbbbbb";
}
};
}
RESOURCE ARRAY r_array_double
{
items =
{
LBUF
{
txt = "0 AAAAAA aaaaaa";
},
LBUF
{
txt = "0 BBBBBB bbbbbb";
}
};
}
在例子中就用了2个LISTBOX的类,一个是CEikColumnListBox;另一个是CEikFormatte
dCellListBox。它们分别对应SINGLE和DOUBLE两种表现形式。下面用代码来说明一下
。
代码:
CEikColumnListBox* iColListBox;
CEikFormattedCellListBox* iForListBox;
iColListBox = new (ELeave) CAknSingleStyleListBox();
iForListBox = new (ELeave) CAknDoubleGraphicStyleListBox();
iColListBox->SetContainerWindowL( *this );
iForListBox->SetContainerWindowL( *this );
//从资源文件中生成LISTBOX
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC( reader, R_TEST_SINGLE);
iColListBox->ConstructFromResourceL( reader );
CEikonEnv::Static()->CreateResourceReaderLC( reader, R_TEST_DOUBLE);
iForListBox->ConstructFromResourceL( reader );
//设置SCROLLBAR
iColListBox->CreateScrollBarFrameL( ETrue );
iColListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
iForListBox->CreateScrollBarFrameL( ETrue );
iForListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
//适合窗口大小
iColListBox->SetRect(Rect());
iForListBox->SetRect(Rect());
//激活
iColListBox->ActivateL();
iForListBox->ActivateL();
//资源.RSS
RESOURCE LISTBOX r_text_single
{
// 给定要生成LISTBOX的ITEMS
array_id = r_array_single;
// LISTBOX的标示
flags = EAknListBoxSelectionList;
}
RESOURCE LISTBOX r_text_double
{
array_id = r_array_double;
flags = EAknListBoxSelectionList;
}
//请注意r_array_single和r_array_double的不同。
// 就是分割符。
// "0 AAAAAA aaaaaa"最前的0表示在*.mbm中序号为0的图片加到LISTBOX的ITEM前
RESOURCE ARRAY r_array_single
{
items =
{
LBUF
{
txt = " aaaaaa";
},
LBUF
{
txt = " bbbbbb";
}
};
}
RESOURCE ARRAY r_array_double
{
items =
{
LBUF
{
txt = "0 AAAAAA aaaaaa";
},
LBUF
{
txt = "0 BBBBBB bbbbbb";
}
};
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126273/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-126273/