×
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.
112 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×