WEB开发网
开发学院手机开发Symbian 开发 Symbian 控件架构之对话框 阅读

Symbian 控件架构之对话框

 2010-04-20 15:44:00 来源:WEB开发网   
核心提示:1.flag属性,定义对话框自身的性质,Symbian 控件架构之对话框(10),示例中定义了三个属性--EEikDialogFlagNoDrag(不可拖动), EEikDialogFlagCbaButtons(使用软键),就会弹出指定对话框,然后不断询问是否IsProcessDone(),EEikDialogFlag

1.flag属性。定义对话框自身的性质。示例中定义了三个属性--EEikDialogFlagNoDrag(不可拖动), EEikDialogFlagCbaButtons(使用软键),

EEikDialogFlagWait(等待)。这些标志在uikon.hrh中定义。

2.buttons属性。指出对话框使用的软键。在avkon.rsg中定义。

3.items属性。定义了对话框中实际包含的内容。items由一些DLG_LINE组成,每一个DLG_LINE包含了一个控件。

4.DLG_LINE属性。表示对话框的每一行,控件通常由id,type和control组成。

在资源文件中定义好对话框之后,即可以编写对话框类,Symbian OS的所有对话框类都从CAknDialog继承而来。需要包含头文件akndialog.h。

以下是CAknDialog的几个重要函数:

1.PreLayoutDynInitL(),完成对话框装载前的初始化工作。对话框中控件的初始化在此函数中进行,通过对话框的成员函数 ControlOrNull()来通过id得到控件指针;如果id存在,返回CCoeControl指针,如果不存在,返回NULL。可以使用函数 Control()来得到控件指针,与ControlOrNull()不同的是,如果id不存在,Control ()返回一个错误。

2.OkToExitL(),点击OK键(EAknSoftkeyOk),对话框退出之前调用此函数以获取对话框中控件的数据。

3.静态函数TBool RunDlgLD(),该函数包含一个对话框的一阶构造函数ExecuteLD(),该函数用来构造、显示和销毁对话框。在程序中显示对话框,只需调用 CXXXDialog::RunDlgLD()即可。

TBool CSimpleDialog::RunDlgLD()

{

CSimpleDialog* dialog=new(ELeave) CSimpleDialog();

return dialog->ExecuteLD(R_DIALOG_EDIT_DIALOG);

}

ExecuteLD()调用了CAknDialog的两个函数PrepareLC()和RunLD()。其中PrepareLC()负责将对话框指针放到清理栈,完成对话框的构建。

RunLD()负责对话框的显示。

等待通知和进度通知的用法

MAknBackgroundProcess有四个接口函数

void DialogDismissedL(TInt /*aButtonId*/);

TBool IsProcessDone() const;

void ProcessFinished();

void StepL();

一个MAknBackgroundProcess应该对应一个CActive

应该与CAknWaitNoteWrapper配合使用,当CAknWaitNoteWrapper调用执行方法以后。就会弹出指定对话框,然后不断询问是否IsProcessDone()。如果IsProcessDone就结束对话框的等待。首先你需要定义一个对话框

上一页  5 6 7 8 9 10 11  下一页

Tags:Symbian 控件 架构

编辑录入:coldstar [复制链接] [打 印]
赞助商链接