`
380071587
  • 浏览: 500844 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用.net GDI+制作时钟

 
阅读更多

GDI+ 是 Windows XP 操作系统中提供二维矢量图形、图像处理和版式的部分。GDI+ 在 GDI(较早版本的 Windows 中提供的 Graphics Device Interface)的基础上进行了改进,添加了新功能并优化了现有功能。

利用GDI+可以很方面的画图绘图,并且也能很方便地操作图形数据。下面本人以一个简单的例子来展示如果用C#和GDI+来制作一个时钟。

运行结果如下:

程序代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Drawing.Drawing2D;
usingSystem.Drawing.Imaging;
usingSystem.Text;
usingSystem.Threading;
usingSystem.Windows.Forms;

namespaceClock
{
publicpartialclassMainForm:Form
{
privatePointFcenter;
privatefloatr;
privatePenhourPen;
privatePenminutePen;
privatePensecondPen;
privateThreadtimeThread;

publicMainForm()
{
InitializeComponent();
ShowInTaskbar
=false;//不在任务栏中显示
SetStyle(ControlStyles.DoubleBuffer,true);
SetStyle(ControlStyles.UserPaint,
true);
SetStyle(ControlStyles.AllPaintingInWmPaint,
true);

center
=newPointF(ClientSize.Width/2.0f,ClientSize.Height/2.0f);
r
=Math.Min(ClientSize.Width/2.0f,ClientSize.Height/2.0f);
hourPen
=newPen(Color.Black,2.5f);
minutePen
=newPen(Color.Black,1.5f);
secondPen
=newPen(Color.Black,0.5f);
timeThread
=newThread(newThreadStart(DrawTime));
timeThread.Start();
}

protectedoverridevoidOnPaint(PaintEventArgse)
{
Graphicsg
=e.Graphics;
g.Clear(BackColor);
//g.SmoothingMode=SmoothingMode.AntiAlias;
g.SmoothingMode=SmoothingMode.HighQuality;
g.DrawArc(secondPen,
newRectangleF(center.X-r,center.Y-r,2*r-3,2*r-3),0,360);

GraphicsPathround
=newGraphicsPath();
round.AddArc(
newRectangleF(center.X-r,center.Y-r,2*r-3,2*r-3),0,360);
Region
=newRegion(round);

Penpen
=newPen(Color.Blue,3.0f);
for(inti=0;i<59;i++)
{
g.ResetTransform();
g.TranslateTransform(center.X,center.Y);
g.RotateTransform(i
*6);
if((i==0)||(i%5==4))
{
g.DrawLine(hourPen,r
-12,0,r-5,0);
}
else
{
g.DrawLine(secondPen,r
-6,0,r-5,0);
}
}


floathour,minute,second;
hour
=DateTime.Now.Hour;
minute
=DateTime.Now.Minute;
second
=DateTime.Now.Second;
hour
=hour+minute/60f+second/3600f;
minute
=minute+second/60f;
//画时针
g.ResetTransform();
g.TranslateTransform(center.X,center.Y);
g.RotateTransform(hour
*30+270-6);
g.DrawLine(hourPen,
0,0,r*0.5f,0f);
//画分针
g.ResetTransform();
g.TranslateTransform(center.X,center.Y);
g.RotateTransform(minute
*6+270-6);
g.DrawLine(minutePen,
0,0,r*0.6f,0f);
//画秒针
g.ResetTransform();
g.TranslateTransform(center.X,center.Y);
g.RotateTransform(second
*6+270-6);
g.DrawLine(secondPen,
0,0,r*0.7f,0f);
base.OnPaint(e);
}

privatevoidDrawTime()
{
while(true)
{
Invalidate();
Thread.Sleep(
900);//为避免某些延时影响,900ms画一次时钟指针
}
}

protectedvoidDispose(objectsender,EventArgse)
{
Dispose();
base.Dispose(Disposing);
Application.Exit();
}

privatevoidtsmExit_Click(objectsender,EventArgse)
{
Close();
Dispose();
base.Dispose(Disposing);
Application.Exit();
}
}
}
程序代码比较简单,而且也做了注释,估计大家都看得懂,我就不罗唆了。以后有时间再做难度稍大一点的例子。
分享到:
评论

相关推荐

    C#使用GDI+制作时钟.docx

    本文将探讨如何使用C#和GDI+创建一个简单的时钟应用程序。这个时钟将实时显示当前的时间,包括小时、分钟和秒针。以下是关键代码的解释: 1. 首先,我们定义了一些必要的变量,如`center`表示时钟圆心的坐标,`r`...

    GDI+制作的时钟

    在“GDI+制作的时钟”这个项目中,开发者使用GDI+创建了一个实时显示时间的时钟应用。时钟作为计算机程序的一个常见实例,展示了如何利用编程语言与GDI+接口来实现动态图形更新。下面我们将深入探讨这个项目可能涉及...

    C# GDI+实现钟表源码

    GDI+(Graphics Device Interface Plus)是.NET Framework提供的一种强大的图形处理技术,它允许开发者创建丰富的图形用户界面,包括绘制2D图形、文字以及图像。 首先,我们需要了解C#中的GDI+基础。GDI+提供了许多...

    C# GDI绘制的动态时钟

    在本文中,我们将深入探讨如何使用C#编程语言和GDI(Graphics Device Interface)库来创建一个动态时钟。GDI是.NET Framework提供的一种低级图形绘制机制,它允许程序员直接控制屏幕上的像素,实现复杂的图形和文本...

    c#精美时钟(无资源文件纯GDI制作)

    【标题】"C#精美时钟(无资源文件纯GDI制作)"是一个使用C#编程语言,基于GDI+图形接口开发的时钟程序。这个程序的独特之处在于它没有依赖任何外部资源文件,而是完全利用了.NET Framework 2.0或更高版本提供的功能来...

    VB.NET指针和数字式时钟程序

    1、基于VB.NET的GDI+开发; 2、可以有指针式和数字式两种显示方式; 3、两种显示方式都有纯色和渐变色的颜色填充模式;

    C#时钟,可以拖动

    在本文中,我们将深入探讨如何使用C#编程语言和GDI+(图形设备接口)来创建一个可拖动的时钟应用。C#是一种广泛应用于Windows桌面应用开发的强大语言,而GDI+则是.NET Framework中用于图形绘制的核心库,允许开发者...

    VC++完全透明的时钟 v1.0

    在Windows编程中,通常使用GDI(Graphics Device Interface)或GDI+进行图形绘制。在这个项目中,GDI+被用来画出时钟的圆盘、指针和刻度。`Graphics`对象用于初始化绘图环境,`Pen`对象定义线条样式,`SolidBrush`...

    winform制作的精美时钟

    标题“winform制作的精美时钟”暗示我们将关注如何利用C#和WinForms来创建一个具有视觉吸引力的时钟应用。在描述中,提到作者参考了多个资料并成功实现了时钟功能,这表明我们将在代码和设计上下文中讨论这个项目。 ...

    c#语言制作的时钟屏保 华丽版

    【C#语言制作的时钟屏保 华丽版】是一个使用C#编程语言开发的高级屏幕保护程序,它展示了编程者对C#特性和Windows Forms应用的深入理解。这款屏保不仅具备基本的时钟功能,还可能包含了丰富的视觉效果和交互设计,使...

    VB 制作带指针时钟表 带源代码

    在VB(Visual Basic)编程环境中,制作一个带指针的时钟表是一项常见的练习,它可以帮助初学者理解事件处理、图形绘制以及时间日期处理等基本概念。VB时钟程序通常会利用GDI+(Graphics Device Interface)库进行...

    vb 6.0时钟控件制作

    用vb制作时钟,简单易懂,容易制作// 声明常量,指定时钟的大小 Public Const ClockSize = 30 // 时钟颜色,角度换算 Public Const Pclor = &H33FF, Tmp = 3.14 / 180 // 定义常量,指明指针长度 Public Const ...

    LED数码管显示控件,适用于.NET平台

    为了开发这样的控件,开发者可能需要掌握C#或VB.NET等.NET语言,了解GDI+或Direct2D等图形库的使用方法。同时,熟悉XML或JSON等数据格式,以便于保存和加载用户配置,也是一个加分项。通过分析提供的压缩包子文件的...

    VC++.NET案例开发集锦源代码.part1

    请下载完四个包后解压即可,其中只包含源代码,而没有电子书;我相信大家需要的应该就是源代码了,呵呵,电子书么... 综合实例2 使用DirectX制作粒子系统 综合实例3 中国象棋游戏 综合实例4 电子商务系统实现(C/S)

    C#仪表画法

    【C#仪表画法】教程为开发者提供了一种在C#环境下实现自定义指针仪表的方法,这种方法不依赖于第三方库,而是利用.NET框架中的GDI+图形库来完成。 首先,要创建自定义仪表控件,需要在Visual Studio中新建一个...

    windows程序设计

    - **程序设计选项**:详细解释了Windows程序设计的不同选项和方法,包括使用C语言直接调用Windows API的方式,以及利用高级框架(如MFC或.NET Framework)来简化开发过程。 **2. Unicode简介** - **字符集简史**:...

Global site tag (gtag.js) - Google Analytics