时间条控件制作简明教程

设计年份和月份选择的时间控件 本文还有配套的精品资源,点击获取 简介:开发过程中可能需要特定的用户界面组件,如时间选择器。针对只需选择年份和月份的场景,特定插件或自定义解决方案可以帮助用户简化操作。传统UI框架提供的日期选择器通常包含完整的日期范围,修改为仅显示年份和月份往往需要深入定制。有一个现成的解决方案能快速集成,避免繁琐的定制过程,提高开发效率和用户体验。压缩包中的文件可能是这种年月选择器插件的... 阅读详情
易智游戏中的时间条,格斗游戏中的血条,相信是大家在制作游戏当中经常遇到的元素. 现在用一简单的教程介绍如何用S60自定义控件完成它,该控件可以随意控制大小,控制时间长度.

    该控件将用到,窗口,如何制作自定义,时间周期类等知识.

    制作之前首先请大家看看 Nokia Forum 关于 自定义控件的原理和教程
   
下载页面>>

   CPeriodic 的类的使用可以参考sdk中
    Developer Library >> API Reference >> C++ API reference >> Timers and Timing Services >> CPeriodic

1.类的定义:


Code:
class CMyTimerContainer : public CCoeControl
{
 public:
   
    void ConstructL(TInt aSecond ,TPoint aPoint, TSize aSize);// aSecond 初始的秒数,TPoint 控件所在位置; TSize控件大小
    ~CMyTimerContainer();
    void Draw(const TRect& aRect) const;

    static TInt Start__(TAny* aObject);    //周期函数
    void Start_();//周期函数
private: //data

  CPeriodic* iPeriodic;
  TInt iLeft; //剩余的时间
  TInt iTotal;//总共的时间
  TPoint iPoint; //控件所在位置,
  TSize iSize; //控件的大小
}
2.周期函数:

Code:
TInt CMyTimerContainer::Start__(TAny* aObject)
{
  ((CMyTimerContainer*)aObject)->Start_(); // cast, and call non-static function
    return 1;
}

void CMyTimerContainer::Start_()
{
  iLeft--;
  if(iLeft==0)
  {
    DrawNow();
    iPeriodic->Cancel();
    return;
  }
  DrawNow();
}
3.绘图函数
Code:
void CMyTimerContainer::Draw(const TRect& 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:
void CMyTimerContainer::ConstructL(TInt aSecond ,TPoint aPoint, TSize aSize)
    {
    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,在构造函数中构造其,秒数,位置,以及大小
void CXXXXContainer::ConstructL(const TRect& aRect)
    {
    CreateWindowL();

    iTimer =  new (ELeave) CMyTimerContainer;
    iTimer->ConstructL( 60/*init seconds*/,TPoint(0,100),TSize(176,15),this);

    SetRect(aRect);
    ActivateL();
    }

至此一个时间控件就做好了,大家可以按照以上的步骤做一下.可以发
邮件: N-office@163.com
website: http://www.symbianer.com
交流心得.
 

转载自:http://blog.youkuaiyun.com/cool_li/archive/2006/07/24/968879.aspx

一个显示在管理后台的时间 JS+HTML 一个简单管理后台的时间显示,年月日小时分秒,星期 立即下载

相关推荐

拖动条选择时间控件

拖动seekbar选择时间的自定义控件

时间控件的设计

第一步:页面设计 *发生时间: 第二步:输入的时间检查 function onEnter(){ checkOccurrenceTime(); } 第三步: 输入的时间检查(失去焦点) function checkOccurrenceTime(){ // 取得发生日期 var o...

第一份博客 209

从‘全步’到‘微步’:一张图看懂步进电机细分控制,选对模式让你的项目更丝滑

本文深入解析步进电机细分控制技术,从全步到微步的演进过程,帮助工程师根据项目需求选择最优控制模式。通过对比不同细分等级的性能特点和应用场景,提供3D打印、实验室自动化等领域的黄金配置方案,实现更精准、平稳的电机控制效果。

weixin_29290259的博客 470

基于element的<el-date-picker>时间周期控件实现月周期、季度周期、年周期的选择

根据时间选择器,选择不同的业务实现不同的时间周期选择,例如月周期、季度周期、年周期等......

m0_46577631的博客 5662

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4696

OpenStack 8 节点生产级高可用(HA)集群实施文档

本文详细介绍了生产级高可用OpenStack集群的架构设计与实施方案。通过采用3节点控制集群(HAProxy+Keepalived)、2节点计算资源池和3节点Ceph分布式存储,实现了控制平面、计算资源和存储系统三个层面的高可用。方案重点阐述了VIP漂移、MariaDB Galera集群、RabbitMQ镜像队列等关键组件的配置方法,并提供了完整的部署流程和故障验证方案。该架构确保任意单节点故障不会影响平台整体可用性,满足生产环境对稳定性、扩展性和可维护性的要求,为构建无单点故障的OpenStack生产环境

彭大帅的博客 779

常见时间控件

项目中使用过的时间控件

卑微牛马学习笔记 1322

Triton server的部署、构建、backend插件机制代码梳理、模型加载、自定义C++backend流程

Triton inference server的部署、构建、backend机制代码详细梳理、模型加载过程、自定义C++backend流程.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 472

【Vue】el-date-picker日期范围组件(本周、本月、上周)

本专栏为 前端【Vue】专栏,主要介绍Vue知识点。对于刚进入计算机世界的学生来说,学习课本上的知识是远远不够的,并且国内教材偏旧,所以需要我们通过互联网自主学习。这里普及一个知识:HTML已不仅仅只能开发Web,也可以开发移动端(AndroidiOS),所以本专栏也会介绍 移动端的开发。我个人将移动端开发,分为两大方向:①原生开发最早一批,使用安卓开发工具包(Android SDK)和Java语言来开发App的方式。原生开发允许开发者充分利用安卓平台的功能和特性,以及庞大的安卓开发社区资源。

花北城的博客 2255

【C#程序员入门AI】必知的一些知识

2026年C#调用AI,核心就4个概念+3种方式4个概念:大模型(大脑)、嵌入(数字密码)、向量(载体)、Agent(超级助理)3种方式:云端API(快)、本地模型(隐私)、混合部署(最佳)不用怕复杂,跟着这个思路走,你就能从“AI小白”变成“C# AI开发能手”,把AI集成到你的.NET项目里,提升效率、创造价值!

人工智能AI技术 407

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。在Unity编辑器中打开一个示例项目,点击BroadCast按钮。4. 再点击Receiver按钮,Start。Build一个示例项目,并运行这个项目。启动Web.app。

每日出拳老爷子的博客 1721
上一篇: Using Theme in an Application--在应用中使用主题(Symbian)
下一篇: 关于Symbian的"crosses initialization of XXX"错误
WaveDHW
博客等级 码龄20年 455粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值