WEB开发网
开发学院手机开发Symbian 开发 Symbian 学习之按键事件、程序分析及程序启动 阅读

Symbian 学习之按键事件、程序分析及程序启动

 2010-03-13 20:26:00 来源:WEB开发网   
核心提示:一.处理按键事件当用户按下某个按键时,Symbian OS的窗口服务器会向应用程序发送一个窗口服务器事件(Windows Server Event),Symbian 学习之按键事件、程序分析及程序启动,应用程序AppUi的HandleWsEventL()函数接收这个事件,并对这个事件进行解析,1.在MyStackCon

一.处理按键事件

当用户按下某个按键时,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 // for example label control

#include //编辑框

#include //资源

#include //列表框

#include //资源定义

#include //iCoeEnv

2.在MyStack.mmp中加入库文件

LIBRARY eikctl.lib bafl.lib

//其中eikctl.lib对应编辑框,bafl.lib对应CDesCArrayFlat动态数组。

3.在MyStackContainer.cpp和MyStackAppUi,cpp中重写HandleCommandL()函数,如下:

MyStackContainer.cpp

1 2 3  下一页

Tags:Symbian 学习 按键

编辑录入:coldstar [复制链接] [打 印]
赞助商链接