﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-塞班岛</title><link>http://www.cppblog.com/siwei/</link><description>siwei的S60之旅</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:06:15 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:06:15 GMT</pubDate><ttl>60</ttl><item><title>判断PenInput界面是否打开</title><link>http://www.cppblog.com/siwei/archive/2010/04/19/112991.html</link><dc:creator>siwei</dc:creator><author>siwei</author><pubDate>Mon, 19 Apr 2010 07:18:00 GMT</pubDate><guid>http://www.cppblog.com/siwei/archive/2010/04/19/112991.html</guid><wfw:comment>http://www.cppblog.com/siwei/comments/112991.html</wfw:comment><comments>http://www.cppblog.com/siwei/archive/2010/04/19/112991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/siwei/comments/commentRss/112991.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/siwei/services/trackbacks/112991.html</trackback:ping><description><![CDATA[<img style="width: 205px; height: 211px;"  src="http://www.cppblog.com/images/cppblog_com/siwei/20_200906051342481CGYd.jpg" border="0"><br><br>包含头文件<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">peninputsrveventhandler.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">peninputclient.h</span><span style="color: #000000;">&gt;</span></div>
<br>定义变量<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RPeninputServer&nbsp;iPeninputServer;</span></div>
<br>这里一个比较搞笑的地方在于RPeninputServer这个类竟然是定义在peninputclient.h中的。<br>为什么一个服务器要定义在名叫client的文件中啊搞不懂。<br><br>将MPenUiActivationHandler子类化，并且重写函数<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">:&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;from&nbsp;MPenUiActivationHandler</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@see&nbsp;MPenUiActivationHandler<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;OnPeninputUiDeactivated();<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@see&nbsp;MPenUiActivationHandler<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;OnPeninputUiActivated();</span></div>
<br>构造的时候连接服务器并且注册回调类<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(&nbsp;AknLayoutUtils::PenEnabled()&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User::LeaveIfError(&nbsp;iPeninputServer.Connect()&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iPeninputServer.AddPenUiActivationHandler(&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;EPluginInputModeAll&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br>使用AknLayoutUtils::PenEnabled()判断是否为触摸屏手机是必要的。<br><br>别忘了在析构时候关闭服务器<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;iPeninputServer.RemovePenUiActivationHandler();<br>&nbsp;&nbsp;&nbsp;&nbsp;iPeninputServer.Close();</span></div>
<br>最后就是要加入<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">LIBRARY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;peninputClient.lib</span></div>
<br>我最初以为只需要从一个M类继承并且实现相关函数就可以了，谁知道还需要连接一个Peninput Server。感觉这样做并不好，第一名字混淆了，就是刚才说的那个问题；第二就是一旦其他程序操作不当或者server本身挂掉了，所有功能也就都失效了；最后一点，也是Symbian特色了，用一个功能就要加入一大堆头文件用一大堆API，程序搭积木似的就会越来越臃肿。<br><img src ="http://www.cppblog.com/siwei/aggbug/112991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/siwei/" target="_blank">siwei</a> 2010-04-19 15:18 <a href="http://www.cppblog.com/siwei/archive/2010/04/19/112991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Symbian]慎用CListItemDrawer::EDisableHighlight屏蔽高亮效果</title><link>http://www.cppblog.com/siwei/archive/2009/12/11/listbox_highlighting.html</link><dc:creator>siwei</dc:creator><author>siwei</author><pubDate>Fri, 11 Dec 2009 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/siwei/archive/2009/12/11/listbox_highlighting.html</guid><wfw:comment>http://www.cppblog.com/siwei/comments/102964.html</wfw:comment><comments>http://www.cppblog.com/siwei/archive/2009/12/11/listbox_highlighting.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/siwei/comments/commentRss/102964.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/siwei/services/trackbacks/102964.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 下面这行代码可以屏蔽listbox的高亮效果：<br><br>    iListBox->ItemDrawer()->SetFlags(CListItemDrawer::EDisableHighlight);<br><br>现在看来这么做在一般情况下OK，但如果listbox内容超过一页就有问题了！<br><br>设想这样一种场景，如果listbox使用这个flag屏蔽了高亮，用户按下上下方向键会有什么情况呢？<br><br>答案就是，虽然高亮效果被屏蔽了，但“不可见”高亮选中的项目还是存在的！这个时候如果listbox有多页的话，必须按N次，将高亮（虽然看不到）移动到最底下一个项目，然后才会翻页。&nbsp;&nbsp;<a href='http://www.cppblog.com/siwei/archive/2009/12/11/listbox_highlighting.html'>阅读全文</a><img src ="http://www.cppblog.com/siwei/aggbug/102964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/siwei/" target="_blank">siwei</a> 2009-12-11 11:16 <a href="http://www.cppblog.com/siwei/archive/2009/12/11/listbox_highlighting.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决EPOCROOT environment variable must be capitalised</title><link>http://www.cppblog.com/siwei/archive/2008/08/01/solved-the-epocroot-problem.html</link><dc:creator>siwei</dc:creator><author>siwei</author><pubDate>Fri, 01 Aug 2008 07:06:00 GMT</pubDate><guid>http://www.cppblog.com/siwei/archive/2008/08/01/solved-the-epocroot-problem.html</guid><wfw:comment>http://www.cppblog.com/siwei/comments/57762.html</wfw:comment><comments>http://www.cppblog.com/siwei/archive/2008/08/01/solved-the-epocroot-problem.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/siwei/comments/commentRss/57762.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/siwei/services/trackbacks/57762.html</trackback:ping><description><![CDATA[<p>这两天一直在被模拟器上网设置折磨，终于弄好了之后气儿还没喘匀，发现编译时后出现问题(T_T)/~~~：</p>
<blockquote dir=ltr style="MARGIN-RIGHT: 0px">
<p dir=ltr style="MARGIN-RIGHT: 0px">***Generating makefiles.<br>C:\WINDOWS\system32\cmd.exe /c bldmake bldfiles WINSCW UDEB <br>EPOCROOT environment variable must be capitalised<br>BEGIN failed--compilation aborted at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools\/E32env.pm line 52.<br>Compilation failed in require at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools/bldmake.pl line 28.<br>BEGIN failed--compilation aborted at D:\Symbian\9.2\S60_3rd_FP1\epoc32\tools/bldmake.pl line 28.<br>***BLDMAKE Command failed with error code 9<br>***Stopping. Check the Problems view or Console output for errors.</p>
</blockquote>
<p dir=ltr style="MARGIN-RIGHT: 0px"><br>&nbsp;<br>上网查了半天，无论是Nokia Forum Wiki还是上面的讨论区都说是系统环境变量设置的问题。加上由于上网设置时候的确动了环境变量，于是来回来去得改。从EPOCROOT到SYSTEMROOT各种大小写、绝对相对路径设置了N多还是不行。<br>&nbsp;<br>快放弃时候发现了另外一个解决方案：<br>&nbsp;<br><strong style="COLOR: #000000">打开\Epoc32\tools\e32env.pm，<br>把<span style="COLOR: #ff0000">die "EPOCROOT environment variable must be capitalised\n" if (`set EPOCROOT` !~ /^EPOCROOT=.*/m);<br></span>注释掉。</strong><br>&nbsp;<br>按照方法注释了之后，程序顺利编译！ヽ(^。^)ノヽ(^。^)ノヽ(^。^)ノ<br>&nbsp;<br>bldmake的错误提示太迷惑人了——因为无论从什么角度看都觉得是路径问题。</p>
<img src ="http://www.cppblog.com/siwei/aggbug/57762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/siwei/" target="_blank">siwei</a> 2008-08-01 15:06 <a href="http://www.cppblog.com/siwei/archive/2008/08/01/solved-the-epocroot-problem.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>siwei的塞班之旅</title><link>http://www.cppblog.com/siwei/archive/2008/07/18/siwei-on-symbian-starts.html</link><dc:creator>siwei</dc:creator><author>siwei</author><pubDate>Fri, 18 Jul 2008 13:17:00 GMT</pubDate><guid>http://www.cppblog.com/siwei/archive/2008/07/18/siwei-on-symbian-starts.html</guid><wfw:comment>http://www.cppblog.com/siwei/comments/56529.html</wfw:comment><comments>http://www.cppblog.com/siwei/archive/2008/07/18/siwei-on-symbian-starts.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/siwei/comments/commentRss/56529.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/siwei/services/trackbacks/56529.html</trackback:ping><description><![CDATA[标题的&#8220;塞班&#8221;并不是那个Saipan岛，而是Symbian。<br><br>毕业后阴差阳错地开始了Symbian编程。到现在已经有将近5个月了，虽然中间有一个多月在学校度过了最后的学生生活，但也有了不少的积累。<br><br>况且，以后在塞班这个暗无天日的小岛上，应该会呆很久吧&#8230;&#8230;<br><br>这个Blog，用来和Symbian开发者们分享心得、讨论问题，作为一个新人，恐怕最多的还是给自己以后的职涯纠偏。<br><br>那么，上岛了。<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emteeth.gif" align=absMiddle border=0><br><br>P.S：很怀念.Text系统，第一个Blog就是在Donews开的。后来才在MyDonews和Yo2的WP系统注册了心的账号。 <br><br>P.P.S：如果这篇日志发布到首页了请管理员帮忙去掉，刚开始用，不太熟悉CPPBlog的系统。THX 
<img src ="http://www.cppblog.com/siwei/aggbug/56529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/siwei/" target="_blank">siwei</a> 2008-07-18 21:17 <a href="http://www.cppblog.com/siwei/archive/2008/07/18/siwei-on-symbian-starts.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>