• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 详解小时钟程序的实现方法

详解小时钟程序的实现方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了小程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
这篇文章详解小时钟程序的实现方法

一般来说,在Windows XP画面的右下角会提示用户目前的时间与日期,如果用点两下右下角的时间或是日期文字后,会出现如图表1所示之「日期和时间 内容」对话框。请注意对话框右方的小时钟,时针、分针与秒针会随着时间的流逝而改变位置,就好像真的时钟一样。现在,利用一些逻辑的推演与.Net Framework精巧的绘图类别,也能够轻易做出类似的效果,以下是我们的说明。 程序范例

这篇文章详解小时钟程序的实现方法

图表2所示者是程序范例的执行结果,在窗体的Load事件处理例程中,计算绘制时钟的半径以及坐标位置,当用户调整时钟所属之窗体大小时,窗体会以双重缓冲的控制模式,自动重绘时钟的内容。之所以设定双重缓冲,是为了减少窗体重绘时所造成的画面闪动,程序代码如下所列:

private void Blog_DemoForm007_Load(object sender, EventArgs e)
{
 // 判断窗体的框线样式是否为可调整的框线。
 DoShowFrame = (this.FormBorderStyle == FormBorderStyle.Sizable);
 
 DemoClock = new Clock(this);
 
 // 取回矩型的宽度与高度坐标。
 ClientOffset = CalcClientLocation();
 
 // 计算时钟半径与坐标。
 CalcCircleSize();
 
 // 指定窗体样式位,当控件重新调整大小时,会重新绘制。
 this.SetStyle(ControlStyles.ResizeRedraw, true);
 
 // 指定窗体样式位,控件会忽略窗口讯息WM_ERASEBKGND 以降低重绘闪动,
 // 控件会自己绘制,操作系统不必执行,
 // 并且绘制已在缓冲区执行,绘制完成后将结果输出至屏幕,
 // 设定双重缓冲能避免控件重绘时所造成的重绘闪动。
 this.SetStyle(ControlStyles.AllPaintingInWmPaint |
   ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
}

用户除了能够改变窗体的大小,还可以让时钟外围的窗体框架消失,如此一来小时钟的外型就跟一般传统的时钟没有什么两样,如图表3所示:

这篇文章详解小时钟程序的实现方法

也许您会问,在没有窗体外框的情况下,能不能够用鼠标拖拉的方式将小时钟移动到想要的位置上?答案是肯定的。请在窗体的MouseDown、MouseUp与MouseMove事件处理例程撰写如下所示之程序代码:

private void Blog_DemoForm007_MouseDown(object sender, MouseEventArgs e)
{
 // 用户按下鼠标左键。
 if (e.Button == MouseButtons.Left)
 {
  IsMouseDown = true;
  MouseOffset.X = e.X;
  MouseOffset.Y = e.Y;
 }
}

private void Blog_DemoForm007_MouseUp(object sender, MouseEventArgs e)
{
 IsMouseDown = false;
}

private void Blog_DemoForm007_MouseMove(object sender, MouseEventArgs e)
{
 // 移动窗体位置。
 if (IsMouseDown)
 {
  this.Location = new Point(
    this.Location.X + e.X - MouseOffset.X,
  this.Location.Y + e.Y - MouseOffset.Y);
 }
}

不久之后,我们还会完成一个更完整的小时钟范例,加入更多更丰富的功能,例如:倒数计时、改变时钟的颜色与渐层效果、显示文字时钟、以及时钟功能设定文件等等,今天就先聊到这里,下次再见。

以上就是详解小时钟程序的实现方法的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-11-30微信小程序之自定义创建实例介绍
  • 2018-11-30微信小程序实战开发之App()和Page()函数概述
  • 2018-11-30微信小程序中购物车的简单实例
  • 2018-11-30微信小程序实现前台循环数据绑定的案例
  • 2018-11-30微信小程序网络请求的封装与改进
  • 2018-11-30深入了解利用Python开发微信支付的注意事项
  • 2018-11-30实例详解微信小程序如何使用Socket
  • 2018-11-30微信小程序 教程之wxapp视图容器 swiper
  • 2018-11-30微信小程序mpvue框架中如何使用iView Weapp?
  • 2018-11-30微信小程序中选项卡的例子

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 新手怎样开发第一款微信小程序
    • 小程序实例:小程序客服发送图片信息的实现代码
    • 如何通过微信小程序实现获取自己所处位置的经纬度坐标的功能
    • 微信小程序 基础知识css样式media标签
    • 小程序开发之利用co处理异步流程的实例教程
    • 微信小程序之如何返回首页
    • 微信小程序之template模板介绍
    • 用tp框架实现微信支付的代码实例
    • 微信小程序数据绑定及运算详解
    • 微信小程序开发-路由

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有