| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> vb >> 窗体 >> 文章正文
用VB5设计多功能计时器            【字体:
用VB5设计多功能计时器
作者:刘宪权    文章来源:-    点击数:    更新时间:2006-6-10

---- 利用VB5的Timer控件,可以很容易地设计出一个简单计时器,如果再结合一些其它函数或方法,就会设计出功能强大的多媒体计时器,本例以一个焖大米计时程序来说明设计过程和方法。

---- 本人经常用压力锅焖大米,将锅放到煤气灶上后,又回到电脑前工作,过一会儿就把焖大米的事忘了,因此,等闻到大米糊味后,才去关火的事曾发生过无数次,尽管每次都表示要吸取教训,但仍然无法痛改前非,于是想到了设计了一个多媒体计时程序,该程序的主要功能为计时,兼有视觉和听觉提示。程序运行时,窗口有文字提示和开始时间、当前时间以及进程显示,当到点时,会奏一段音乐;另外,为了竭尽提醒之能事,在程序处于运行状态时,窗口标题栏和Windows任务栏的相应图标不停地闪烁。

---- 奏乐和闪烁功能是通过调用Windows API 函数mciExecute和FlashWindow来实现的。为了实现窗口标题栏和任务栏图标的闪烁,需另外添加一个窗体Form2,并设置Form2为启动窗体,程序启动并实现闪烁后,使Form2关闭,为了不影响其它工作,Form1窗口运行状态缺省设置为最小,即只在任务栏闪烁,到时(10分钟)会奏乐。

---- Form1的界面如图1(略)所示,共有六个Label控件,名称分别为lblInfo、Label1、Label2、Labe3、Label4、Label5;其Autosize 属性均设置为True; 两个Command控件,名称分别为cmdStart和cmdExit; 两个timer控件,Tmrflash的Interval属性为200,tmrCount的Interval属性为1000;一个进程条控件,名称为prb。

---- Form1的代码如下:

Option Explicit
Private StartTime As Single
Private Declare Function FlashWindow Lib "user32"
(ByVal hwnd As Long, ByVal bInvert As Long) As Long
Private Declare Function mciExecute Lib "winmm.dll"
(ByVal lpstrCommand As String) As Long
Private Sub cmdExit_Click()
Dim y
y = mciExecute("close c:\windows\media\canyon.mid")
End
End Sub

Private Sub cmdStart_Click()
prb.Value = 0
StartTime = 0
tmrCount.Enabled = True
Label3.Caption = Time
End Sub

Private Sub Form_Load()
Left = (Screen.Width - Width) \ 2
Top = (Screen.Height - Height) \ 2
Label3.Caption = Time
End Sub

Private Sub Tmrflash_Timer()
Dim Rt As Long
Rt = FlashWindow(hwnd, CLng(True))
End Sub

Private Sub tmrCount_Timer()
Form2.Hide
Dim Percent
If StartTime = 0! Then
StartTime = Timer
End If
Label5.Caption = Time
Dim TimeNeed As Integer
TimeNeed = 600
Percent = 100 * (Timer - StartTime) / TimeNeed
If Percent < 100 Then
Dim TimePassed
prb.Value = Percent
TimePassed = Int(Percent * TimeNeed / 6000)
Label1.Caption = "已焖 " & TimePassed & " 分"
lblInfo.Caption = "正在焖着..请不要外出"
Else
prb.Value = 100
lblInfo.Caption = "大米已焖熟,立即关火!"
lblInfo.FontBold = True
lblInfo.ForeColor = vbRed
Label1.Caption = " 已焖 " & CInt(Percent
* TimeNeed / 6000) & " 分"
Dim x
x = mciExecute("play c:\windows\media\canyon.mid")
tmrCount.Enabled = False
End If
End Sub

---- Form2窗口不放置任何控件,将WindowsState属性设置为最小,其代码如下:

Option Explicit
Private Sub Form_Load()
Form1.Show
End Sub

[1]

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 用VB编写DirectX7.0游戏(下…

  • 用VB编写DirectX7.0游戏(上…

  • 使用OLE DB和ADO调用返回记录…

  • 使用VB调用Oracle程序包内的…

  • VB中用ADO对象动态创建数据库…

  • fffff

  • 如何用MSComm Control传Bina…

  • MultiLink的WinSock Server程…

  • 用VB制作浏览器

  • 用VB编写网络寻呼机

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |