文章标题是自己起的,加转载标记是因为代码是Series 60 SDK里的。 Series 60里一般通过左软键"Option"自动弹出菜单,但也可以通过其它方式。 在Series 60 SDK的menu例程(“\Series60Ex\menu\”)中就使用了“OK”键弹出菜单。见“aknexmenuokcontainer.cpp”中的OfferKeyEventL()函数。 TKeyResponse CAknExMenuOkContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ) { TKeyResponse keyResponce( EKeyWasNotConsumed ); keyResponce = iLowerText->OfferKeyEventL( aKeyEvent, aType ); if ( keyResponce == EKeyWasNotConsumed ) { // 注意是“OK”键时运行的这段代码 if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyOK ) )
JAVA手机网[www.cnjm.net] {
JAVA手机网[www.cnjm.net] iParent->MenuBar()-> SetMenuTitleResourceId( R_AKNEXMENU_MENUBAR_OK_TEST ); if ( iParent->MenuBar() ) { iParent->MenuBar()->StopDisplayingMenuBar(); } if (iParent->MenuBar())
JAVA手机网[www.cnjm.net] { iParent->MenuBar()->TryDisplayMenuBarL();
JAVA手机网[www.cnjm.net] } } iParent->MenuBar()-> SetMenuTitleResourceId( R_AKNEXMENU_MENUBAR_OK_MENU ); return EKeyWasConsumed;
JAVA手机网[www.cnjm.net] }
JAVA手机网[www.cnjm.net] return keyResponce; } 可以看出这段代码的独立性比较强,因此如果移到HandleCommandL()里就可以实现右软键菜单等。 |