塞班岛

siwei的S60之旅

2010年4月19日



包含头文件
#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 @ 2010-04-19 15:18 siwei 阅读(301) | 评论 (0)编辑 收藏

2009年12月11日

     摘要: 下面这行代码可以屏蔽listbox的高亮效果:

iListBox->ItemDrawer()->SetFlags(CListItemDrawer::EDisableHighlight);

现在看来这么做在一般情况下OK,但如果listbox内容超过一页就有问题了!

设想这样一种场景,如果listbox使用这个flag屏蔽了高亮,用户按下上下方向键会有什么情况呢?

答案就是,虽然高亮效果被屏蔽了,但“不可见”高亮选中的项目还是存在的!这个时候如果listbox有多页的话,必须按N次,将高亮(虽然看不到)移动到最底下一个项目,然后才会翻页。  阅读全文
posted @ 2009-12-11 11:16 siwei 阅读(534) | 评论 (0)编辑 收藏

2008年8月1日

这两天一直在被模拟器上网设置折磨,终于弄好了之后气儿还没喘匀,发现编译时后出现问题(T_T)/~~~:

***Generating makefiles.
C:\WINDOWS\system32\cmd.exe /c bldmake bldfiles WINSCW UDEB
EPOCROOT environment variable must be capitalised
BEGIN failed--compilation aborted at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools\/E32env.pm line 52.
Compilation failed in require at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools/bldmake.pl line 28.
BEGIN failed--compilation aborted at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools/bldmake.pl line 28.
***BLDMAKE Command failed with error code 9
***Stopping. Check the Problems view or Console output for errors.


 
上网查了半天,无论是Nokia Forum Wiki还是上面的讨论区都说是系统环境变量设置的问题。加上由于上网设置时候的确动了环境变量,于是来回来去得改。从EPOCROOT到SYSTEMROOT各种大小写、绝对相对路径设置了N多还是不行。
 
快放弃时候发现了另外一个解决方案:
 
打开\Epoc32\tools\e32env.pm,
die "EPOCROOT environment variable must be capitalised\n" if (`set EPOCROOT` !~ /^EPOCROOT=.*/m);
注释掉。

 
按照方法注释了之后,程序顺利编译!ヽ(^。^)ノヽ(^。^)ノヽ(^。^)ノ
 
bldmake的错误提示太迷惑人了——因为无论从什么角度看都觉得是路径问题。

posted @ 2008-08-01 15:06 siwei 阅读(1893) | 评论 (1)编辑 收藏

2008年7月18日

标题的“塞班”并不是那个Saipan岛,而是Symbian。

毕业后阴差阳错地开始了Symbian编程。到现在已经有将近5个月了,虽然中间有一个多月在学校度过了最后的学生生活,但也有了不少的积累。

况且,以后在塞班这个暗无天日的小岛上,应该会呆很久吧……

这个Blog,用来和Symbian开发者们分享心得、讨论问题,作为一个新人,恐怕最多的还是给自己以后的职涯纠偏。

那么,上岛了。

P.S:很怀念.Text系统,第一个Blog就是在Donews开的。后来才在MyDonews和Yo2的WP系统注册了心的账号。

P.P.S:如果这篇日志发布到首页了请管理员帮忙去掉,刚开始用,不太熟悉CPPBlog的系统。THX
posted @ 2008-07-18 21:17 siwei 阅读(323) | 评论 (4)编辑 收藏
仅列出标题  

导航

<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜