Symbian 学习之按键事件、程序分析及程序启动
2010-03-13 20:26:00 来源:WEB开发网一.处理按键事件
当用户按下某个按键时,Symbian OS的窗口服务器会向应用程序发送一个窗口服务器事件(Windows Server Event)。应用程序AppUi的HandleWsEventL()函数接收这个事件,并对这个事件进行解析,
如果控件需要响应按键事件,则需要重载OfferKeyEventL()函数,并且应用程序要事先调用AppUi类的AddToStack()函数将控件压入控件堆栈。
按键事件通过TEventCode和TKeyEvent两个类型的变量表示。这两个类型都保存在w32std.h文件中,TEventCode代表事件的类型:
EEventKeyDown:按键按下的时候,窗口服务器发出该消息
EEventKeyUp:按键抬起的时候,窗口服务器发出该消息
EEventKey:一般按键消息,按键按下之后且抬起之前发出
TKeyEvent类对按键事件进行了更详细的描述,代码如下:
struct TKeyEvent
{
TUint iCode;
TInt iScanCode;
TUint iModifiers;
TInt iRepeats;
}
二.基于控件的应用开发实例
程序启动流程:对于所有的.app应用程序,应用程序框架会首先创建Application对象、Document对象和AppUi对象,然后由AppUi对象创建程序的具体界面。
三.Symbian 控件编程
一个简单的基于控件的mystack程序,以下是开发中需要注意的问题:
使用环境:C:Symbian8.0aS60_2nd_FP2_SC
参考用书:《基于Symbian OS的手机开发与应用实践》第七章。
1.在MyStackContaier.cpp中加入头文件:
#include
#include
#include
#include
#include
#include
2.在MyStack.mmp中加入库文件
LIBRARY eikctl.lib bafl.lib
//其中eikctl.lib对应编辑框,bafl.lib对应CDesCArrayFlat动态数组。
3.在MyStackContainer.cpp和MyStackAppUi,cpp中重写HandleCommandL()函数,如下:
MyStackContainer.cpp
更多精彩
赞助商链接