上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
用VB设计多功能计时器
作者:未知 申领版权
2010年11月14日 共有 990 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    
    ---- 利用VB的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 
    

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

用VB做定时断线程序
VisualBasic中的界面设计原则和编程技巧
VB6.0与Windows API 间的呼叫技巧
制作可以自动隐藏的弹出式菜单
ListBox中的字符串超长显示的解决方法
VB中的Unicode 和 Ansi 格式
优化程序显示速度
Visual Basic 产生渐层的 Form 背景
用VB实现客户——服务器(TCP/IP)
用VB制作注册软件的方法

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》