初学symbian 对话框我见

// -----------------------------------------------------------------------------

//

// 这是我的第一篇博文,我也是刚开始学习Symbian c++ 同大家一起努力

// 谨以此文献给我的最爱 YY女孩(YY 可别想坏了哦)

// 感谢linzhiji http://blog.csdn.net/linzhiji/archive/2010/02/25/5321898.aspx

//

// -----------------------------------------------------------------------------

//

实现对话框
S60环境中实现对话框有两个阶段:
①在.rss文件中定义对话框资源
②定义CAknDialog的子类,并实行其中部分虚方法

 

自己建一个默认的工程(IDE carbide C++ V2.0)下 关于 About对话框有如下代码

这里告诉大家一点博客心得,代码先在Word中粘贴,再粘贴在论坛就可以出现这样的效果,否则格式很是难看。

// -----------------------------------------------------------------------------

//

// About dialog resource.

//

// -----------------------------------------------------------------------------

//

RESOURCE DIALOG r_about_query_dialog

    {

    flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;

    buttons = R_AVKON_SOFTKEYS_OK_EMPTY;

    items=

       {

       DLG_LINE

           {

           type = EAknCtPopupHeadingPane;

           id = EAknMessageQueryHeaderId;

           itemflags = EEikDlgItemNonFocusing;

           control = AVKON_HEADING

              {

              };

           },

       DLG_LINE

           {

           type = EAknCtMessageQuery;

           id = EAknMessageQueryContentId;

           control = AVKON_MESSAGE_QUERY

              {

              };

           }

       };

    }

不明白含义 可以参照Dialog的资源定义

对话框资源定义
对话框资源定义使用DIALOG结构,它在eikon.rh中定义:
STRUCT DIALOG
{
        LONG flags=0;
        LTEXT title="";
        LLINK pages=0;
        LLINK buttons=0;
        STRUCT items[];
        LLINK form=0;
}

 

Dialog flags
DIALOG中的flags指定了对话框类型。flags的值在eikon.hrh和avkon.hrh中定义。具体含义我在网上还没找到,不过根据英文应该可以明白设置的是什么类型的Dialog。

 

Items — dialog lines
对话框行结构在eikon.rh中定义:
STRUCT DLG_LINE
{
        WORD type;
        LTEXT prompt;
        WORD id=0;
        LONG itemflags=0;
        STRUCT control;
        LTEXT trailer="";
        LTEXT bmpfile = "" ;
        WORD bmpid = 0xffff ;
        WORD bmpmask ;
        LTEXT tooltip = "" ;
}

 

Buttons — softkeys

软件通过CBA资源来定义。下面是avkon.rsg中的预定义软键:

#define R_AVKON_SOFTKEYS_EMPTY                    0x8cc0010
#define R_AVKON_SOFTKEYS_EMPTY_WITH_IDS           0x8cc0011
#define R_AVKON_SOFTKEYS_OK_EMPTY                 0x8cc0012
#define R_AVKON_SOFTKEYS_SELECT_CANCEL            0x8cc0013
#define R_AVKON_SOFTKEYS_OK_CANCEL                0x8cc0014
#define R_AVKON_SOFTKEYS_OK_DETAILS               0x8cc0015
#define R_AVKON_SOFTKEYS_CALL_CANCEL              0x8cc0016
#define R_AVKON_SOFTKEYS_OPTIONS_BACK             0x8cc0017
#define R_AVKON_SOFTKEYS_OPTIONS_DONE             0x8cc0018
#define R_AVKON_SOFTKEYS_OPTIONS_CANCEL           0x8cc0019
#define R_AVKON_SOFTKEYS_OPTIONS_EXIT             0x8cc001a
#define R_AVKON_SOFTKEYS_OK_BACK                  0x8cc001b
#define R_AVKON_SOFTKEYS_CANCEL                   0x8cc001c
#define R_AVKON_SOFTKEYS_BACK                     0x8cc001d
#define R_AVKON_SOFTKEYS_CLOSE                    0x8cc001e
#define R_AVKON_SOFTKEYS_DONE_BACK                0x8cc001f
#define R_AVKON_SOFTKEYS_DONE_CANCEL              0x8cc0020
#define R_AVKON_SOFTKEYS_SELECT_BACK              0x8cc0021
#define R_AVKON_SOFTKEYS_MARK_BACK                0x8cc0022
#define R_AVKON_SOFTKEYS_UNMARK_BACK              0x8cc0023
#define R_AVKON_SOFTKEYS_YES_NO                   0x8cc0024
#define R_AVKON_SOFTKEYS_UNLOCK_EMPTY             0x8cc0025
#define R_AVKON_SOFTKEYS_SAVE_BACK                0x8cc0026
#define R_AVKON_SOFTKEYS_SHOW_CANCEL              0x8cc0027
#define R_AVKON_SOFTKEYS_SHOW_EXIT                0x8cc0028
#define R_AVKON_SOFTKEYS_ANSWER_EXIT              0x8cc0029
#define R_AVKON_SOFTKEYS_EXIT                     0x8cc002a
#define R_AVK

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值