【转】捕捉菜单打开和关闭事件
2010-01-20 12:06
537 查看
http://www.devdiv.net/bbs/thread-6066-1-1.html 开发伙伴平台: S60 3rd Edition 详细描述 这个代码片段演示了如何在CAknAppUi派生类中捕捉菜单打开和关闭事件。这些事件可通过MEikEemuObserver中派生的SetEmphasis()方法来捕捉。如当一个游戏打开菜单而需要暂停时,就需要捕捉这样的事件。 此代码可以通过自签名来完成。 MMP文件 需要下列链接库 LIBRARY avkon.lib //Avkon resources头文件 #ifndef __TESTAAPPUI_H__ #define __TESTAAPPUI_H__ // INCLUDES #include <aknappui.h> // FORWARD DECLARATIONS class CTestAAppView; //class CGameEngine; // CLASS DECLARATION /** * CTestAAppUi application UI class. */ class CTestAAppUi : public CAknAppUi { //... private: // from MEikMenuObserver void SetEmphasis(CCoeControl* aMenuWindow,TBool aEmphasis); //... //Pauses the application if menu is activated void SetUiPauseState(TBool aEmphasis); private: // Data //The application view CTestAAppView* iAppView; //The pointer to the game engine //CGameEngine* iEngine; }; #endif //__TESTAAPPUI_H__ 源文件 #include "TestAAppUi.h" #include "TestAAppView.h" //... // From MEikMenuObserver. Menu emphasising or de-emphasising function. void CTestAAppUi::SetEmphasis(CCoeControl* /*aMenuWindow*/, TBool aEmphasis) { if(iAppView) { SetUiPauseState(aEmphasis); } } void CTestAAppUi::SetUiPauseState(TBool aEmphasis) { //pause game if menu is activated if(aEmphasis /*&& !iEngine->IsStopped()*/) { //this debug line works only in the emulator //iEikonEnv->InfoMsg(_L("stop")); //iEngine->StopGame(); } else { //this debug line works only in the emulator //iEikonEnv->InfoMsg(_L("start")); //iEngine->StartGame(); } } |
相关文章推荐
- 如何捕捉控制台程序的关闭事件。
- 关闭按钮点击事件的捕捉
- 兼容性强的js捕捉网页刷新关闭退出事件的方法
- IOS关闭键盘以及接受键盘打开关闭事件
- WinForm中捕捉Flash按钮、菜单等动作事件
- 脚本捕捉网页的关闭按钮的关闭事件
- VC菜单命令详解(文件打开、保存与关闭) .
- C++捕捉关闭控制台应用程序事件
- 如何捕捉控制台程序的关闭事件(转)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 关闭按钮点击事件的捕捉
- 怎么在JSP页面里面捕捉关闭IE浏览器事件
- VC菜单命令详解(文件打开、保存与关闭)
- VC菜单命令详解(文件打开、保存与关闭)
- VC文件打开、保存与关闭菜单命令(转)
- 捕捉窗口右上角关闭按钮关闭事件
- 捕捉用户关闭浏览器事件
- 浏览器右键、刷新、默认事件、打开新窗口、关闭
- 捕捉IE关闭按钮事件
- LigerUI扩展,进入后台时打开上次未关闭的菜单