塞班岛

siwei的S60之旅

判断PenInput界面是否打开



包含头文件
#include <peninputsrveventhandler.h>
#include 
<peninputclient.h>

定义变量
        RPeninputServer iPeninputServer;

这里一个比较搞笑的地方在于RPeninputServer这个类竟然是定义在peninputclient.h中的。
为什么一个服务器要定义在名叫client的文件中啊搞不懂。

将MPenUiActivationHandler子类化,并且重写函数

    
private:  // from MPenUiActivationHandler
        /**
         * @see MPenUiActivationHandler
         
*/
        
void OnPeninputUiDeactivated();
    
        
/**
         * @see MPenUiActivationHandler
         
*/
        
void OnPeninputUiActivated();

构造的时候连接服务器并且注册回调类
    if ( AknLayoutUtils::PenEnabled() )
        {
        User::LeaveIfError( iPeninputServer.Connect() );
        iPeninputServer.AddPenUiActivationHandler( 
this, EPluginInputModeAll );
        }

使用AknLayoutUtils::PenEnabled()判断是否为触摸屏手机是必要的。

别忘了在析构时候关闭服务器
    iPeninputServer.RemovePenUiActivationHandler();
    iPeninputServer.Close();

最后就是要加入
LIBRARY         peninputClient.lib

我最初以为只需要从一个M类继承并且实现相关函数就可以了,谁知道还需要连接一个Peninput Server。感觉这样做并不好,第一名字混淆了,就是刚才说的那个问题;第二就是一旦其他程序操作不当或者server本身挂掉了,所有功能也就都失效了;最后一点,也是Symbian特色了,用一个功能就要加入一大堆头文件用一大堆API,程序搭积木似的就会越来越臃肿。

posted on 2010-04-19 15:18 siwei 阅读(301) 评论(0)  编辑 收藏 引用 所属分类: SymbianC/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

统计

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜