Symbian 学习之对话框简介
2010-03-19 15:48:00 来源:WEB开发网本节的MySimpleDlg示例程序自定义了一个对话框CMySimpleDialog类,它重载了PreLayoutDynInitL()函数,MySimpleDialog.cpp主要代码如下:
#include
#include
#include "MySimpleDlg.hrh"
void CMySimpleDialog::PreLayoutDynInitL()
{
CEikLabel* label = static_cast
_LIT(KMyLabel, "Changed by PreLayoutDynInitL()");
label->SetTextL(KMyLabel());
}
使用此方法可以直接调用ExecuteLD()函数执行对话框,MySimpleDlgAppUi.cpp代码如下:
#include
#include
#include
#include "MySimpleDialog.h" // for CMySimpleDialog
.....
void CMySimpleDlgAppUi::HandleCommandL(TInt aCommand)
{
switch ( aCommand )
{
......
case ESimpleDlgCmdPreLayout:
{
CAknDialog* dialog = new(ELeave)CMySimpleDialog; //创建自定义对话框
dialog->ExecuteLD(R_SIMPLEDLG_DIALOG); //执行对话框
break;
}
// TODO: Add Your command handling code here
default:
break;
}
}
注意:Symbian 使用vc6.0开发环境,加入新类以后,最好把.h头文件放在inc文件夹中,.cpp源文件放在src文件夹中(保持统一),必须在.mmp文件中加入 source文件,如本章的.mmp加入如下代码:
SOURCE MySimpleDialog.cpp
最后重新编译。
4.退出对话框
当为对话框资源指定了 EEikDialogFlagNotifyEsc标记时,对话框会在用户按下软键时调用CEikDialog::OkToExitL()函数。因此可以在自定义的对话框中重载CEikDialog::OkToExitL()函数。当该函数返回ETrue时,对话框退出,并且由系统销毁。返回EFalse
更多精彩
赞助商链接