TSS000022
开发伙伴平台: 60系列开发平台 1.0/2.0
设备, 软件版本: 无
大类: Symbian C++
子类: 普通
说明:
询问:
symbian API中提供了使用CAknIconArray读取资源图标供listbox所用的方法。
它使用了AKN_ICON_ARRAY结构,请问能否提供一段代码描述如何使用?
解答:
在资源中有如下描述:
RESOURCE AKN_ICON_ARRAY r_icon_testIcons
{
type = EAknIconArraySimple;
bmpfile = "z:/SYSTEM/DATA/AVKON.MBM";
icons =
{
AKN_ICON
{
iconId = EMbmAvkonQgn_indi_checkbox_on;
maskId = EMbmAvkonQgn_indi_checkbox_on_mask;
},
AKN_ICON
{
IconId = EMbmAvkonQgn_indi_checkbox_off;
maskId = EMbmAvkonQgn_indi_checkbox_off_mask;
}
};
}
这里资源包括了checkboxes的缺省图标。
在编写代码时,可以使用CAknIconArray::ConstructFromResourceL()来构造图标
...
// CAknSingleGraphicStyleListBox* iListbox;
iListbox = new(ELeave)CAknSingleGraphicStyleListBox();
iListbox->SetContainerWindowL(*this);
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC(reader, R_LIST);
iListbox->ConstructFromResourceL(reader);
// Creates a GUI icon array.
CAknIconArray* icons =new(ELeave) CAknIconArray(2);
CleanupStack::PushL(icons);
icons->ConstructFromResourceL(R_ICON_TESTICONS);
// Sets graphics as ListBox icon.
iListbox->ItemDrawer()->ColumnData()->SetIconArray(icons);
CleanupStack::Pop(); // icons
CleanupStack::PopAndDestroy(); // reader