成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

包含時鐘vbnet的詞條

怎樣用vb.net作一個指針轉(zhuǎn)動的鐘表?(可設置時間日期,有鬧鈴功能)

你需要會用GDI+,也就是那個System.Drawing命名空間下的類.

成都創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元湖州做網(wǎng)站,已為上家服務,為湖州各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

給你說個思路,設Timer,到時間就用Form.Invalidate()函數(shù)重畫窗口,在重畫窗口的Form_Paint事件下面編寫代碼得到當前時間,再根據(jù)當前時間用GDI+畫時鐘.

如何用VB制作個多功能時鐘

1、

顯示時間

2、語音報時

3、定時報警

4、定時關機

同時我還將在文章中穿插介紹VB提供的繪圖方法以及一些實用技巧,下面我們就開始吧。

閱讀導航

一、如何顯示時間

(1)

VB時間日期函數(shù)介紹

(2)

建立實例

(3)

VB繪圖方法介紹

1、Line方法

2、Circle方法

3、Pset方法

4、三角函數(shù)

二、實現(xiàn)語音報時

(1)

使用MCI控件

(2)

相關API函數(shù)介紹

(1)

GetLocalTime()

(2)

SYSTEMTIME結構

(3)

mciExecute()

(4)

mciSendString()

三、實現(xiàn)定時關機和定時報警

vb.net開發(fā)簡單的時鐘程序??高手救救我!

!

Hand類的代碼:

Public MustInherit Class Hand

Protected gp As GraphicsPath = New GraphicsPath()

Protected gpBase As GraphicsPath = Nothing

Protected midX As Integer = 150 ‘默認的窗體

Protected midY As Integer = 150 ‘中心位置

‘構造器,得到窗體中心位置

Public Sub New(ByVal theForm As Form1)

midX = (theForm.ClientRectangle.Left + theForm.ClientRectangle.Right) / 2

midY = (theForm.ClientRectangle.Top + theForm.ClientRectangle.Bottom) / 2

End Sub

MustOverride Sub Transform(ByVal d As DateTime)

‘繪制指針路徑

Overridable Sub Draw(ByVal g As Graphics)

Dim aPen As Pen = New Pen(Brushes.Black, 4F)

g.DrawPath(aPen, gp)

g.FillPath(Brushes.Black, gp)

aPen.Dispose()

End Sub

‘使用矩陣實現(xiàn)路徑(gp)的旋轉(zhuǎn)

Public Sub Rotate(ByVal angle As Double)

gp = CType(gpBase.Clone(), GraphicsPath)

Dim mTransform As Matrix = New Matrix()

mTransform.RotateAt(CType(angle,Single),NewPointF(midX,midY))

gp.Transform(mTransform)

End Sub

End Class

為了節(jié)省篇幅,上面的代碼省略了引入命名空間的語句。

下面是分針(MinuteHand)類的定義:

Public Class MinuteHand

Inherits Hand

‘構造器,生成繪制分針的路徑(gp)

Public Sub New(ByVal myForm As Form1)

MyBase.New(myForm)

gp.AddLine(midX, midY, midX, 45)

gp.AddLine(midX, 45, midX - 3, 50)

gp.AddLine(midX - 3, 50, midX + 3, 50)

gp.AddLine(midX + 3, 50, midX, 45)

gpBase = CType(gp.Clone(), GraphicsPath)

End Sub

‘Transform方法取得系統(tǒng)當前時間,并旋轉(zhuǎn)時鐘指針。

Public Overrides Sub Transform(ByVal d As DateTime)

Dim minuteTime As Double = (CDbl(d.Minute) + CDbl(d.Second / 60))

Dim angle As Double = (CDbl(minuteTime) / 60) * 360

Rotate(angle)

End Sub

End Class

對所有的指針旋轉(zhuǎn)的方法都是相同的,因此在基類中實現(xiàn)。由于時針和秒針的實現(xiàn)與分針相似,所不同者,只在于構造器中繪制的指針路徑不同和Transform方法中轉(zhuǎn)動的角度不同,在這里就不在贅述了。

另外還需要提一下的是畫時鐘表面的代碼,時鐘表面用ClockFace類來實現(xiàn)。這個類首先畫一個圓代表時鐘,然后畫上米老鼠的圖案,最后在相應的位置畫上數(shù)字1~12代表12個小時。

Public Sub Draw(ByVal g As Graphics)

DrawClockFace(g)

DrawImage(g)

DrawNumbers(g)

DrawPin(g)

End Sub

下面是ClockFace類的屬性:

Private ClockRectangle As Rectangle

Private ClockFont As Font = New Font("Arial", 12)

Private midPoint As Point

Private ClockImage As Bitmap

Private Const IMAGEX As Integer = 50

Private Const IMAGEY As Integer = 50

DrawClockFace方法用來畫時鐘表面:

Private Sub DrawClockFace(ByVal g As Graphics)

g.FillEllipse(Brushes.White, ClockRectangle.Left + 10, ClockRectangle.Top + 10, ClockRectangle.Width - 20, ClockRectangle.Height - 20)

g.DrawEllipse(Pens.Black, ClockRectangle.Left + 10, ClockRectangle.Top + 10, ClockRectangle.Width - 20, ClockRectangle.Height - 20)

End Sub

然后用Graphics對象的DrawImage方法畫出米老鼠的圖片:

Private Sub DrawImage(ByVal g As Graphics)

Dim nWidth As Integer = ClockImage.Width

Dim nHeight As Integer = ClockImage.Height

Dim destRect As Rectangle = New Rectangle(midPoint.X - IMAGEX / 2, midPoint.Y - IMAGEY / 2, IMAGEX, IMAGEY)

g.DrawImage(ClockImage, destRect)

End Sub

數(shù)字在時鐘上的位置是用sin和cos函數(shù)計算的:

Private Sub DrawNumbers(ByVal g As Graphics)

Dim count As Integer = 1

Dim a As Double

For a = 0 To 2 * Math.PI Step 2 * Math.PI / 12

Dim x As Double = (ClockRectangle.Width - 70) / 2 * Math.Cos(a - Math.PI / 3) + (ClockRectangle.Width - 70) / 2 + 25

Dim y As Double = (ClockRectangle.Width - 70) / 2 * Math.Sin(a - Math.PI / 3) + (ClockRectangle.Width - 70) / 2 + 20

g.DrawString(Convert.ToString(count), ClockFont, Brushes.Black, CType(x, Single), CType(y, Single), New StringFormat())

count += 1

Next

End Sub

最后是窗體文件(Form1.vb):

Public Class Form1

Inherits System.Windows.Forms.Form

Private MyMinuteHand As MinuteHand

Private MyHourHand As HourHand

Private MySecondHand As SecondHand

Private TheClockFace As ClockFace

Private FirstTick As Boolean = False

‘在窗體的OnPaint事件中取得Graphics對象

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

If (FirstTick = False) Then Exit Sub

Dim g As Graphics = e.Graphics

TheClockFace.Draw(g)

MyHourHand.Draw(g)

MyMinuteHand.Draw(g)

MySecondHand.Draw(g)

TheClockFace.DrawPin(g)

End Sub

‘計時器事件

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

MySecondHand.Transform(DateTime.Now)

MyHourHand.Transform(DateTime.Now)

MyMinuteHand.Transform(DateTime.Now)

FirstTick = True

Invalidate()

想用vb.net做一個登陸界面 在這個界面顯示一個指針時鐘。就像下面的。誰有現(xiàn)成的例子么?

這個控件不是.net Fremawork自帶的,是用戶自己添加的控件,你可以去網(wǎng)上找這樣的控件,在VS里添加引用就可以了

當前文章:包含時鐘vbnet的詞條
標題網(wǎng)址:http://jinyejixie.com/article36/doppcsg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、自適應網(wǎng)站、Google品牌網(wǎng)站制作、微信小程序、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
杭锦旗| 佛山市| 老河口市| 松桃| 西峡县| 德令哈市| 屏山县| 沙田区| 方山县| 永泰县| 东丽区| 饶河县| 怀远县| 麻阳| 岳普湖县| 外汇| 云林县| 丽江市| 桃园县| 定州市| 壶关县| 仪征市| 安顺市| 义乌市| 峨眉山市| 仪陇县| 泊头市| 宁南县| 阳曲县| SHOW| 灵丘县| 交城县| 临漳县| 兰西县| 石狮市| 桐庐县| 灯塔市| 海城市| 闻喜县| 比如县| 鄱阳县|