CAknSettingItemList中使用CAknEnumeratedTextPopupSettingItem使用心得
来源:互联网 发布:维密超模痴迷编程 编辑:程序博客网 时间:2024/05/22 04:05
CAknSettingItemList中使用CAknEnumeratedTextPopupSettingItem使用心得
CAknSettingItemList是一个控件,而CAknEnumeratedTextPopupSettingItem不是一个控件。只是在CAknSettingItemList中设置了一种列表的方式。
//--------------------------------------.rss文件--------------------------------------
RESOURCE POPUP_SETTING_LIST r_popup_setting_list
{
flags = 0;
}
RESOURCE AVKON_SETTING_PAGE r_enumeratedtext_setting_page
{
type = EAknCtPopupSettingList;
editor_resource_id = r_popup_setting_list;
}
RESOURCE AVKON_POPUP_SETTING_TEXTS r_popup_setting_texts
{
setting_texts_resource = r_texts;
}
RESOURCE ARRAY r_texts
{
items =
{
AVKON_ENUMERATED_TEXT
{value=0; text = "dummy";}
};
}
RESOURCE AVKON_SETTING_ITEM_LIST r_entry_settings_list
{
title = "Example";
}
//--------------------------------------创建列表--------------------------------------
1.Container的头文件中
CAknSettingItemList* iItemList;
TInt iEnumText1;
//此函数用于创建CAknEnumeratedTextPopupSettingItem列表项
void LoadListL();
//获取列表选中的内容
void GetCurSelect();
//设置列表选中的内容
void SetCurSelect();
//这三个为.cpp文件中的全局变量
_LIT(KName9, "Enumerated text");
_LIT(KEnumText1, "Enum text 1");
_LIT(KEnumText2, "Enum text 2");
2.Container的定义文件中
构造函数中设置为NULL
iItemList = NULL;
3.二段构造ConstructL()函数中
iItemList = new (ELeave) CAknSettingItemList;
iItemList->SetMopParent(this);
iItemList->ConstructFromResourceL(R_ENTRY_SETTINGS_LIST);
iItemList->SetFocus(ETrue);
LoadListL();
iItemList->MakeVisible(ETrue);
iItemList->SetExtent(aRect.iTl, TSize(aRect.Size().iWidth,
aRect.Size().iHeight));
iItemList->ActivateL();
iItemList->ListBox()->UpdateScrollBarsL();
//iItemList->DrawNow();
4.定义LoadListL()函数
void CMainContainer::LoadListL()
{
TBool isNumberedStyle = iItemList->IsNumberedStyle();
CArrayPtr<CGulIcon>
* icons =
iItemList->ListBox()->ItemDrawer()->FormattedCellData()->IconArray();
/*Enumerated text setting item*/
CAknEnumeratedTextPopupSettingItem* item9 =
new (ELeave) CAknEnumeratedTextPopupSettingItem(1, iEnumText);
CleanupStack::PushL(item9);
// The same resource id can be used for multiple enumerated text setting pages.
item9->ConstructL(isNumberedStyle, 9, KName9, icons,
R_ENUMERATEDTEXT_SETTING_PAGE, -1, 0, R_POPUP_SETTING_TEXTS);
// Load texts dynamically.
CArrayPtr<CAknEnumeratedText>* texts = item9->EnumeratedTextArray();
texts->ResetAndDestroy();
CAknEnumeratedText* enumText;
// Text 1
HBufC* text = KEnumText1().AllocLC();
enumText = new (ELeave) CAknEnumeratedText(0, text); //0代表此条记录的编号
CleanupStack::Pop(text);
CleanupStack::PushL(enumText);
texts->AppendL(enumText);
CleanupStack::Pop(enumText);
// Text 2
text = KEnumText2().AllocLC();
enumText = new (ELeave) CAknEnumeratedText(1, text); //1代表此条记录的编号
CleanupStack::Pop(text);
CleanupStack::PushL(enumText);
texts->AppendL(enumText);
CleanupStack::Pop(enumText);
iItemList->SettingItemArray()->AppendL(item9);
CleanupStack::Pop(item9);
// Required when there is only one setting item.
iItemList->SettingItemArray()->RecalculateVisibleIndicesL();
iItemList->HandleChangeInItemArrayOrVisibilityL();
}
5.定义获取选中的值
void CMainContainer::GetCurSelect()
{
iItemList->StoreSettingsL();
iEnumText1; //此时iItemList列表已经更新,选中的值已经反映到iEnumText1中
}
6.设置选值
void CMainContainer::SetCurSelect()
{
iItemList->StoreSettingsL(); //更新列表
iEnumText1 = 1; //设置1为当前选中的内容
iItemList->LoadSettingsL(); //加载设置
iItemList->DrawDeferred(); //刷新
}
- CAknSettingItemList中使用CAknEnumeratedTextPopupSettingItem使用心得
- Symbian CAknSettingItemList使用心得
- Symbian CAknSettingItemList使用心得
- UNIX中getopt()使用心得
- web中使用Cache心得
- jsp中frameset 使用心得
- jsp中frameset 使用心得
- vs2010中MSDN使用心得
- jsp中frameset 使用心得
- Yii中CGridView使用心得
- Delphi中TDateTime使用心得
- Delphi中TDateTime使用心得
- Delphi中TDateTime使用心得
- jQuery中 trigger() 使用心得
- jQuery中 trigger() 使用心得
- VC中CDockablePane使用心得
- VC中CDockablePane使用心得
- js中json使用心得
- 常见浏览器兼容性问题与解决方案
- oracle 10g 修改IP或者机器名导致无法启动oracleDBConsole的解决方法
- Facebook独立用户访问量2012超谷歌
- 一句话解决乱码问题
- Oracle 10g 安装问题:Microsoft LoopBack Adapter 配置
- CAknSettingItemList中使用CAknEnumeratedTextPopupSettingItem使用心得
- 爱情导盲犬
- 游戏是一种社会力量
- [转载]关于C++界面库的一点感受
- SOA和EA相辅相成
- 世界五百强
- 强大的轻量级网络入侵检测系统SNORT
- Google否认Android应用认证体系被破解
- mysql表类型