Symbian OS 控件开发之内置通知对话框
2010-04-20 15:50:00 来源:WEB开发网通知对话框:
Symbina OS提供了许多内置的通知对话框,可以直接使用。如 CAknConfirmationNote,CAknInformationNote,CAknWarningNote,CAknErrorNote,CAknWaitNote,CAknProgressDialog,CAknGlobalNote。
定义的相关代码如下:
case EDialogCmdAppDlgNote:
{
HBufC* noteText = StringLoader::LoadLC(R_NOTE_TEXT);
CAknInformationNote* note = new(ELeave)CAknInformationNote();
note->ExecuteLD(*noteText);
CleanupStack::PopAndDestroy(noteText);
break;
}
构建系统预定义的通知对话框不需要在资源文件中定义,而是直接调用通知对话框的构造函数即可。
如果要自定义对话框,示例如下:
RESOURCE DIALOG r_confirmationnote_self_define_note
{
flags = EAknConfirmationNoteFlags;
items =
{
DLG_LINE
{
type = EAknCtNote;
id = EConfirmationNote01;
control = AVKON_NOTE
{
layout = EGeneralLayout;
singular_label = Label_Text1;
plural_label = "This is self definition note";
imagefile = "z:\system\apps\dialog\dlg.mbm";
imageid = EMbmDialogIcon1;
imagemask = EMbmDialogIcon1_m;
};
}
};
}
资源文件定义好后,在Dialog的Container文件中构造自定义通知对话框对象。
void CDialogContainer::CosntructL(const TRect& aRect)
{
CreateWindowL();
CAknNoteDialog* note = new(ELeave)CAknNoteDialog(CAknNoteDialog::EConfirmationTone,CAknNoteDialog::EShortTimeout);
note->PrepareLC(R_CONFIRMATIONNOTE_SELF_DEFINE_NOTE);
note->SetTextPluralityL(ETrue);
note->RunLD();
SetRect(aRect);
ActiveL();
}
更多精彩
赞助商链接