《Symbian 中各种提示、输入对话框的使用29756.doc》由会员分享,可在线阅读,更多相关《Symbian 中各种提示、输入对话框的使用29756.doc(14页珍藏版)》请在金锄头文库上搜索。
1、Symbian 中各种提示、输入对话框的使用29756Symbian 中各种提示、输入对话框的使用 1、非阻塞提示框 symbian定义了几个提示类,分别是: confirm类:CAknConfirmationNote info类: CAknInformationNote warning类:CAknWarningNote error类: CAknErrorNote 头文件:aknnotewrappers.h lib:avkon.lib eikcdlg.lib eikctl.lib 使用方法: Code: TBuf buf; buf.Copy(_L(info note); CAknInforma
2、tionNote* iInfoNote = new (ELeave) CAknInformationNote; iInfoNote-ExecuteLD(buf); 2、阻塞提示框 void CEikonEnv:AlertWin(const TDesC& aMsg); void CEikonEnv:AlertWin(const TDesC& aMsg1,const TDesC& aMsg2); static void CEikonEnv:InfoWinL(const TDesC& aFirstLine,const TDesC& aSecondLine); AlertWin为CEikonEnv类的
3、非静态成员函数,InfoWinL为CEikonEnv类的静态成员函数。 AlertWin只能在ui、view和container中使用,使用方法如下: Code: iEikonEnv-AlertWin(_L(text); InfoWinL可以在任意类中使用,使用方法如下: Code: CEikonEnv:Static()-InfoWinL(_L(note:), _L(text); 为方便使用,常定义宏来使用这类提示框,如: Code: #define DEBUG_DIALOG(x) iEikonEnv-AlertWin(#x); #define DEBUG_DIALOG1(x) CEikonE
4、nv:Static()-InfoWinL(_L(note:), #x); #define DEBUG_DIALOG2(x,y) CEikonEnv:Static()-InfoWinL(#x, #y); 可以这么使用: TBuf buf; buf.Copy(_L(test); DEBUG_DIALOG(buf); DEBUG_DIALOG1(buf); DEBUG_DIALOG2(buf,_L(text); 此类提示框阻塞线程,只有用户按键退出提示框后,后面的程序才能接着运行。 3、进度条对话框 进度条对话框类为: CAknProgressDialog 头文件:aknprogressdialog
5、.h lib: avkon.lib eikcdlg.lib eikctl.lib 使用方法: Code: /初始化进度条 CAknProgressDialog* iProgressDialog; CEikProgressInfo* iProgressInfo; iProgressDialog = new ( ELeave ) CAknProgressDialog( reinterpret_cast ( &iProgressDialog ) ); iProgressDialog-SetCallback( this ); iProgressDialog-PrepareLC( R_RESOURCE_
6、PROGRESS_NOTE ); /从资源文件构造对话框,资源见下面的定义 iProgressInfo = iProgressDialog-GetProgressInfoL(); iProgressInfo-SetFinalValue( aMaxValue ); /设置进度条的最大值(结束值) iProgressDialog-RunLD(); /更新进度条 iProgressInfo-IncrementAndDraw( aStep ); /结束进度条 iProgressDialog-ProcessFinishedL(); delete iProgressDialog; RESOURCE DIA
7、LOG R_RESOURCE_PROGRESS_NOTE /进度条对话框资源 flags = EAknProgressNoteFlags; buttons = R_AVKON_SOFTKEYS_CANCEL; items = DLG_LINE type = EAknCtNote; id = EMagicBoxCtrlIdProgressNote; control = AVKON_NOTE layout = EProgressLayout; singular_label = 对话框中显示的文字; plural_label = download; imagefile = AVKON_BMPFILE
8、_NAME; /第二版中 图标文件为 #define AVKON_BMPFILE_NAME z:systemdataavkon.mbm imageid = EMbmAvkonQgn_note_sml; /这两项可更改显示不同图标 imagemask = EMbmAvkonQgn_note_sml_mask; ; ; 4、等待对话框 等待对话框要用到的类: CAknGlobalNote 头文件:aknglobalnote.h lib:aknnotify.lib eiksrv.lib 使用方法: Code: /显示等待对话框 CAknGlobalNote* globalNote = CAknGlobalNote:NewL(); CleanupStack:PushL( globalNote );