转自百度<cb></cb>symbian吧 > 浏览贴子:http://post.baidu.com/f?kz=139962353
|
<cc></cc> 易智游戏中的时间条,格斗游戏中的血条,相信是大家在制作游戏当中经常遇到的元素.现在用一简单的教程介绍如何用S60自定义控件完成它,该控件可以随意控制大小,控制时间长度.
该控件将用到,窗口,如何制作自定义,时间周期类等知识.
制作之前首先请大家看看NokiaForum关于自定义控件的原理和教程 CPeriodic的类的使用可以参考sdk中 DeveloperLibrary>>APIReference>>C++APIreference>>TimersandTimingServices>>CPeriodic
1.类的定义: Code: classCMyTimerContainer:publicCCoeControl { public:
voidConstructL (TIntaSecond,TPointaPoint,TSizeaSize);//aSecond初始的秒数,TPoint控件所在位置;TSize控件大小 ~CMyTimerContainer(); voidDraw(constTRect&aRect)const;
staticTIntStart__(TAny*aObject);//周期函数 voidStart_();//周期函数 private://data
CPeriodic*iPeriodic; TIntiLeft;//剩余的时间 TIntiTotal;//总共的时间 TPointiPoint;//控件所在位置, TSizeiSize;//控件的大小 }
2.周期函数:
Code: TIntCMyTimerContainer::Start__(TAny*aObject) { ((CMyTimerContainer*)aObject)->Start_();//cast,andcallnon-staticfunction return1; }
voidCMyTimerContainer::Start_() { iLeft--; if(iLeft==0) { DrawNow(); iPeriodic->Cancel(); return; } DrawNow(); } 3.绘图函数 Code:
voidCMyTimerContainer::Draw(constTRect&aRect)const { CWindowGc&gc=SystemGc();
/*画背景*************************/ gc.SetBrushColor(KRgbBlack); gc.SetBrushStyle(CGraphicsContext::ESolidBrush); gc.DrawRect(aRect);
/*画进度条*************************/ gc.SetBrushStyle(CGraphicsContext::ESolidBrush); gc.SetBrushColor(KRgbRed); gc.SetPenStyle(CGraphicsContext::ENullPen); gc.DrawRect(TRect(TSize(iLeft*Size().iWidth/iTotal,iSize.iHeight))); }
4.控件的构造
Code: voidCMyTimerContainer::ConstructL(TIntaSecond,TPointaPoint,TSizeaSize) { CreateWindowL(); iTotal=aSecond; iLeft=iTotal; iPoint=aPoint; iSize=aSize; iPeriodic=CPeriodic::NewL(CActive::EPriorityIdle); iPeriodic->Start(0/*8000000*/,1000000/*35714*/,TCallBack(Start__,this)); SetExtent(aPoint,aSize); ActivateL(); }
5.如何调用该控件
Code: a,在XXXContainer.h中加入该控件 private://data CMyTimerContainer*iTimer;
b,在构造函数中构造其,秒数,位置,以及大小 voidCXXXXContainer::ConstructL(constTRect&aRect) { CreateWindowL();
iTimer=new(ELeave)CMyTimerContainer; iTimer->ConstructL(60/*initseconds*/,TPoint(0,100),TSize(176,15),this);
SetRect(aRect); ActivateL(); } 至此一个时间控件就做好了,大家可以按照以上的步骤做一下.
|
|
|
贴子相关图片:
|
分享到:
相关推荐
本文将深入探讨Symbian自定义控件的制作过程,包括其核心概念、步骤以及如何利用SymbianER-时间条控件制作简明教程来实践这些知识。 首先,我们要理解什么是自定义控件。在UI设计中,控件是用户与应用交互的基本...
【虚拟机下VMware_ThinApp简明教程】 VMware ThinApp是一款强大的应用程序虚拟化工具,它能够将软件的相关资源,如可执行文件(exe)、动态链接库(dll)、控件文件(ocx)以及注册表项,封装到一个独立的EXE文件中。这...
- **步骤**:提供一个简明的指南,帮助初学者快速上手制作MIUI锁屏,包括所需工具的选择、基本要素的设计思路等。 #### 如何看待“盗用原作”提交到市场的收费主题? - **观点**:讨论版权问题在主题设计领域的...
学习过程中,推荐了一些书籍和视频教程,例如"Java大学简明教程"和"Java开发实战经典",以及马士兵的JAVA视频教程。 在Java文件操作模块,学习者将花费2周时间研究Java I/O流,以及多线程技术,通过实际项目如资源...
这可以通过创建两个`日期时间`变量,然后利用对话框或者输入框等控件获取用户输入的日期字符串,再用`转换日期时间`命令将字符串转换为`日期时间`类型。 接着,使用`日期减法`命令可以计算两个日期之间的差值,它会...
Excel2007图表完全剖析 8/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
Excel2007图表完全剖析 1/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
Excel2007图表完全剖析 2/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
Excel2007图表完全剖析 4/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
Excel2007图表完全剖析 6/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353
Excel2007图表完全剖析 3/8 ...A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353