×
Namespaces

Variants
Actions

如何实现类似于messageBox的消息筐

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
chengkai 在 14 Jan 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

做过windows编程的都知道有一个非常方便的MessageBox函数用来显示一个消息框,我们可以用来调试程序或者作为消息提醒。在S60编程中虽然没有同名函数但是确实也提供了相似功能的函数,以下给出两个宏定义用来模仿MessageBox的功能。

实现代码

//简单的MessageBox定义
#define MESSAGEBOX( text ) ((new (ELeave) CAknInformationNote)->ExecuteLD(text))
//带有格式化输出的MessageBox
#define MESSAGEBOX_PRINTF( format, val ) \
{ TBuf<200> buf; buf.Format( format, val ); MESSAGEBOX(buf);}

#endif





测试用例

输出一个字符串消息:

MESSAGEBOX(_L("Hello My MessageBox!");

输出一个格式化字符串消息:

//格式化输出数值类型
MESSAGEBOX_PRINTF(_L("Number Value=%d"),10);
//格式化输出描述符类型
MESSAGEBOX_PRINTF(_L("String Value=%S"),_L("String Data"));





注意事项

  • MESSAGEBOX_PRINTF宏使用TBuf作为格式化输入缓冲区其缓冲区最大长度定义为200,如果我们的数据长度超过这个最大缓冲区系统将会抛出USER 11的Panic。
  • MESSAGEBOX_PRINTF只支持一个参数格式化输出,不提供可变参数格式化输出。
This page was last modified on 15 December 2011, at 09:42.
34 page views in the last 30 days.