文档详情

学习symbian第六课.doc

发布:2018-01-17约1.08万字共11页下载文档
文本预览下载声明
学习symbian第六课 今天,我们来把前一次没解决的问题搞定。 捕获列表框的Ok键 要想让列表框能够捕获到Ok键(当然还有很多的事件),需要MEikListBoxObserver类的支持,这个类在eaklbo.h这个头文件中定义,我们在VS2003中导入这个头文件时,这个类在默认的情况下是不支持的,也就是说默认的情况下,程序是不会让列表框捕获到Ok键的。 这也是我前面一直没搞定的原因。所以在下来的几个操作中,都是围绕着这个MEikListBoxObserver类进行展开的。 在TestContainer.h文件中, 导入头文件 #include eiklbo.h // MEikListBoxObserver 在类本身的定义中,把这个句子class CTestContainer : public CCoeControl, MCoeControlObserver改成对MEikListBoxObserver类的的支持,这样,这个句子就变成 class CTestContainer : public CCoeControl, MEikListBoxObserver 注释掉void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);这个函数,在前面加双斜线。 定义私有函数(在第一个private的后面) private: // from MEikListBoxObserver void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aListBoxEvent); 在TestContainer.rss类实现文件中, 导入头文件 #include uikon.hrh // TKeyCode #defines 把CTestContainer::HandleControlEventL函数实现代码全部注释掉或删除掉。 实现捕获按键函数,在文件后面添加代码 void CTestContainer::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aListBoxEvent) { if ( aListBoxEvent == MEikListBoxObserver::EEventEnterKeyPressed ) { iEikonEnv-InfoMsg(_L(test)); } } 在CTestContainer::ConstructL构造函数中,用代码生成 iListBox类表框控件,并更新条目后,在显示的时候注意添加按键的侦听语句(其实这一句才是让列表框控件耳目通畅) iListBox-SetListBoxObserver(this); 这样就可以编译程序了,这时候当程序出现列表框时,你按动方向键中间的Ok键时,程序就会出现一个提示框,显示“test”。如图所示,这时程序已经能够捕获Ok键了,至于要得到类表框所选的条目内容已经是不难了,在这一课的后半部分会涉及到,我不重复,仅仅是显示“test”的提示框而已。 列表框显示图标原理 接下来就来解决程序的面子问题,怎样让列表框在显示文件的同时,也能让文件和子文件夹用不同的小图样显示出来,让他们看起来像Windows资源管理器那样的效果呢,这就是在列表框中显示图标了。 这个问题也困扰了我很久,甚至都想到放弃,因为网上能查到的这个问题的文章不算多,也就那几篇文章在抄来抄去转来转去的,都是人云亦云;就是从网上下的实例代码也基本上不能跑起来,而官方实例却是讲得太全太滥,让你看得眼发昏。真是让人抓狂啊,就没有一个大侠来救救我们这些刚要入门的小小吗? 也算机缘巧合,我看到了一篇英文的资料,不得不赞一句,还是原版的东西好,还是官方的东西给力。尽管我对英文是一句也看不懂,不过我会看图啊,这样我也从中猜到了许多有用的知识。现在就抖一抖书包了: Avkon single line listbox CAknSingleStyleListBox \t%S\t\t I CAknSingleNumberStyleListBox %d\t%S\t\t N I CAknSingleHeadingStyleListBox %S\t%S\t\t H I CAknSingleNumberHeadingStyleListBox %d\t%S\t%S\t\t N H I CAknSingleGraphicStyleListBox %d\t%S\t%d\t%d i I i i CAknSingleGr
显示全部
相似文档