`

Symbian开发笔记(一)

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

CTest_1AppUi::HandleCommandL(TInt aCommand)
{
switch ( aCommand )
{
case EAknSoftkeyBack:
case EEikCmdExit:
{

_LIT(KQueryDelete,"Are you sure to delete it?");
CAknQueryDialog* dlg = new(ELeave) CAknQueryDialog(const_cast<tdesc>(</tdesc>KQueryDelete()),CAknQueryDialog::EWarningTone);
dlg->ExecuteLD(R_DIALOG_DELETE_QUERY);
break;
}
case ETest_1CmdAppTest:
{
// Info message shown only in the emulator
iEikonEnv->InfoMsg(_L("test"));

// Load localized message from the resource file
HBufC* message = CEikonEnv::Static()->AllocReadResourceLC(R_MESSAGE_TEXT);

// Show information note dialog
CAknInformationNote* note = new (ELeave) CAknInformationNote;


note->ExecuteLD(message->Des());
CleanupStack::PopAndDestroy(message);
break;
}
// TODO: Add Your command handling code here

default:
break;
}

这里面有几个知识点:

1:_LIT()宏所定义的常量并不是描述符,但可以通过使用一个重载的运算符()将其转换为const TDesC&类型的描述符。

2:CAknQueryDialog的第一个参数需要一个TDesC&类型的参数,所以我们需要把KQueryDelete()强制转换成非const类型的,这需要使用C++中的强制类型转换const_cast<tdesc>。</tdesc>

3:千万注意要把const_cast<tdesc>所接的数据加上()。</tdesc>

void CTest_1AppUi::HandleCommandL(TInt aCommand)
{
switch ( aCommand )
{
case EAknSoftkeyBack:
case EEikCmdExit:
{
_LIT(KQueryDelete,"Are you sure to delete it?");
CAknQueryDialog* dlg = new(ELeave) CAknQueryDialog(const_cast<tdesc>(KQueryDelete()),CAknQueryDialog::EWarningTone);</tdesc>


TInt temp = dlg->ExecuteLD(R_DIALOG_DELETE_QUERY);


_LIT(KReturnValue,"the return value is :");

HBufC* iBuf = HBufC::NewLC(100);
iBuf->Des().Copy(KReturnValue);
iBuf->Des().AppendNum(temp);
CEikonEnv::Static()->InfoMsg(*iBuf);
CleanupStack::PopAndDestroy(iBuf);
break;
}

default:
break;
}
}

从程序执行中我们可以看到,当我们点dlg的NO按钮时,temp的值为一个正数(程序中是3005),而当我们点dlg 的OK的时候,temp的值为0。

所以我们在很多程序中可以看到类似下面的代码:

if(dlg->ExecuteLD(R_DIALOG_DELETE_QUERY))
{
TInt index = iListBox->CurrentItemIndex();
TName name(db.iName);
iUi->iDB->iArrayDB->Delete(index);
iUi->iDB->SaveDBL();
CEikonEnv::Static()->ReadResource(info, R_STR_DELETE_TIPS);
tips.Format(info, &name);
ShowNotify(tips);
if(iUi->iDB->iArrayDB->Count()==0)
{
CEikonEnv::Static()->ReadResource(info, R_STR_NO_CD_TIPS);
ShowNotify(info);
CreateFunctionListBoxL();
}
else
{
CreateRecordListBoxL();
}
}

也就是判断我们是否点击了Dialog的OK按钮。




分享到:
评论

相关推荐

    symbian学习笔记,全28讲

    symbian学习笔记,比较全面的,整理过后的Word版本。 从搭建开发环境开始讲起,很适合初学symbian的同学,从入门到高级。

    Nokia官方培训Symbian开发资料[整理]

    Nokia官方培训(Symbian 4300)笔记(三)--Carbide.c++开发环境 新一篇: Nokia官方培训(Symbian 4300)笔记(二)-- Symbian OS Basics 新一篇: Nokia官方培训(Symbian 4300)笔记(五)--Memory Management 新一篇: Nokia...

    Symbian 开发技巧汇总

    从事Symbian开发工作也有几个年头了,一直想总结一下开发过程中遇到的问题以及解决技巧,但是总是有这样那样的理由不愿花时间去总结,今天天气不错,心情也挺好,摆出一副专家的气势伏案工作,翻出这几年的工作笔记...

    移动终端学习笔记之Android(一)Android第一堂课

    1996年,微软开发Window CE系统,随后的2001年,Symbian S60面向消费者,2007年6月,ios登上历史舞台,2008年9月,Android这个憨憨的机器人悄然问世。 到如今,ios和Android占有了大部分的手机市场,昔日的巨头...

    symbian资料打包下载

    Symbian OS C++程序员编码诀窍.pdf symbian 开发过程.pdf symbian 入门篇.doc symbian+开发讲义.pdf symbian编码标准.pdf Symbian程序编码规范.pdf symbian实例教程.pdf Symbian学习笔记.pdf

    android app笔记

    2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 [1] 2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全...

    symbian集合了大多数CSDN中的symbian好课件资源

    symbian系统开发教程.chm 好Symbian+c++游戏的可用性指南.pdf 好Symbian+OS+C++程序员编码诀窍.pdf 好Symbian函数或类与头文件和LIB库对照表.rtf 好Symbian系统环境下通信系统的设计与实现.pdf 好Symbian学习笔记....

    JAVA 学习/工作 笔记

    J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构...

    JAVA 五年的工作经验和学习笔记

    J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构...

    Qt学习笔记

    塞班开发入门基础,环境搭建,为你开启Qt学习之路

    我的Symbian编程回忆录

    1、大概是去年公司9周年年庆的前一周花了1330元买了Nokia5230这款智能手机,其搭载的是ARM11的CPU和Symbian第五版的OS,是个很典型的嵌入式开发平台,对于从事软件行业的我,自然少不了在这个平台上玩玩应用开发了,...

    嵌入式系统/ARM技术中的全方面了解MeeGo平台知识

    说到MeeGo,这是一个最新推出的应用于多种设备的开发平台。随着移动互联网核嵌入式互联时代的到来,设备厂商很难靠单一的设备稳固市场地位,因此 Meego的出现增强了厂商的可选性。  我们从中不难读出诺基亚和英特尔...

    贝岭的matlab的代码-nfccorkboard:使用NFC功能扩展QtSDK的QtQuickcorkboards示例:触摸标签,其NDEF

    贝岭的matlab的代码NFC软木板 ...类还会在检测到目标、执行的操作和错误的情况下将调试输出写入控制台,以使开发更容易。 Symbian 注意事项:该项目要求您的设备上安装 Qt 4.7.4 和 Qt Mobility 1.2。 在 C7

    [源代码]Python算法详解.rar

    笔记 经验 习题答案 应用设计 技术资料 电子大赛 开发板 模块 驱动开发 移动开发 加密解密 压缩解压 编译器/仿真器 多媒体处理 图形图像 游戏 音视频 传感器 连接器 软件 Altium Designer Atmel studio CAD CAM ...

Global site tag (gtag.js) - Google Analytics