对话框

1.区分模态,非模态,等待,非等待的概念

   模态对话框阻止的是用户与UI的交互。

   等待对话框阻止的是程序中其它代码的运行。

   Series60中的对话框默认是模态和非等待对话框。

2.包装式通知,Wrapper Note,只需提供文本,不需提供资源。这样使通知标准化,使用更方便。

3.(1)是否对话框

  资源:

   RESOURCE DIALOG r_aknexquery_confirmation_query
 {
 flags = EGeneralQueryFlags;
 buttons = R_AVKON_SOFTKEYS_YES_NO; //CBA显示“是”和“否”

  items =
  {
  DLG_LINE
   {
   type = EAknCtQuery;
   id = EGeneralQuery;
   control = AVKON_CONFIRMATION_QUERY //表示这是confirm询问对话框

    {
    layout = EConfirmationQueryLayout;
    label = query_dialog_caption;
    };
   }
  };
 }

使用:

   TBuf<20> msg;

   CAknQueryDialog* dlg = CAknQueryDialog::NewL();
    if (dlg->ExecuteLD(R_AKNEXQUERY_CONFIRMATION_QUERY, msg))
    {
     
    }

(2)

RESOURCE DIALOG r_net_wait_dialog
 {
 flags = EAknWaitNoteFlags | EEikDialogFlagWait;
 buttons = R_AVKON_SOFTKEYS_CANCEL;
 items =
  {
  DLG_LINE
   {
   type = EAknCtNote;
   id=1;
   control= AVKON_NOTE
    {
    layout = EWaitLayout;
    singular_label = "";
    animation = R_QGN_GRAF_WAIT_BAR_ANIM;
    };
   }
  };
 }

RESOURCE DIALOG r_net_progress_dialog
 {
 flags=EAknProgressNoteFlags;
 buttons = R_AVKON_SOFTKEYS_CANCEL;
 items =
  {
  DLG_LINE
   {
   type = EAknCtNote;
   id = 1;
   control = AVKON_NOTE
    {
    layout = EProgressLayout;
//    singular_label = "";
//    imagefile = "";
//    imageid = EMbmAvkonQgn_note_progress;
//    imagemask = EMbmAvkonQgn_note_progress_mask;
    };
   }
  };
 }

 

(3)全局查询对话框 (查询意味着有交互)

       CAknGlobalMsgQuery

       http://wiki.forum.nokia.com/index.php/CS001059_-_%E4%BD%BF%E7%94%A8CAknGlobalMsgQuery%E6%98%BE%E7%A4%BA%E4%B8%80%E4%B8%AA%E5%85%A8%E5%B1%80%E6%B6%88%E6%81%AF%E6%9F%A5%E8%AF%A2%E6%A1%86

 

 

(4)

   CAknWaitNoteWrapper默认延时显示,有个参数设置为ETrue就好了。CAknWaitDialog也是如此.

  CAknWaitDialog的使用方法是先执行操作,再显示等待对话框。而如果长时间的操作方法是同步的,则上述方法不可行(会导致等待对话框Show不出来)。这是我们需要使用CAknWaitNoteWrapper。

 

   waitNoteWrapper- >ExecuteL(R_WAITNOTE_SEARCH_MUSIC_NOTE,*this);
----------
第三个参数默认为EFalse,改为ETrue。

SDK说明:
aVisibilityDelayOff  If set ETrue the dialog will be visible immediality. Use only when the length of the process is ALWAYS over 1.5 seconds. 

 

 remember the wrapper isn't a dialog, so it doesn't need the EEikDialogFlagWait flag to make it blocking

 

小谈等待对话框

http://hi.baidu.com/richiechyi/blog/item/1324ce1f6ad1320c314e1587.html

 

 

可以把这这些资源写到一个文件中,到把这个文件包含到工程的主rss文件中,例如

#include "dialog.rssi"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值