自定义按钮需要先构造资源文件,如下: RESOURCE CBA r_my_softkey { buttons = { CBA_BUTTON { id = EAknSoftkeyMaybe; txt = "Maybe"; // Texts can be defined in .loc file(s) // to support language localization }, CBA_BUTTON { id = EAknSoftkeyWhy; txt = "Why?"; } }; } [code] 然后取代询问对话框的默认按纽: [code] RESOURCE DIALOG r_myconfirmation_query { flags = EGeneralQueryFlags; buttons = r_my_softkey; // note that own softkey is // used as lowercase items = { DLG_LINE { type = EAknCtQuery; id = EGeneralQuery; control = AVKON_CONFIRMATION_QUERY; }, ... }
询问对话框的处理和其他对话框一样,可以通过OkToExit()来处理按键: Code:
// class CMyAknQueryDialog: public CAknQueryDialog, ... #include <eikenv.h> TBool CMyAknQueryDialog::OkToExitL(TInt aButtonId) { if (aButtonId == EAknSoftkeyMaybe) // Handle “Maybe” key press else if (aButtonId == EAknSoftkeyWhy) // Handle “Why” key press return ETrue; } |