admin 管理员组文章数量: 1086019
2024年3月27日发(作者:onclicknum是什么意思)
2O10年4月 电 脑 学 习 第2期
巧用VB模拟倒计时器
王瑜’
摘 要:利用VB软件中计时器控件以及其他控件开发出可蔓夏使用的倒计时软件.并给出相应的源程序。
关键词:VB 倒计时器
中图分类号:TP311.1 文献标识码: A 文章编号:1002-2422(2010)02—0063-03
Usin2ⅦtO Simulate Countdown mer
Wang Yu
Abstract:The paper uses timer controls and other controls in VB software to develop reusable countdown software,and Slves
the corresponding source code.
Keyword:VB Countdown Timer
1倒计时器界面及各控件属性设置
显示所有内容;同时,为了使时间显示后颜色有所变化,也
用VB中各控件设计演讲赛界面,包括2个图片框控
可将Forecolor属性设置为桔红色。而对于label2和label3
件、3个标签控件、1个计时器控件和3个多媒体控件。单击
控件,因为其功能只是为了能在单击以后控制不同的时间,
图标上半部为4分钟倒计时,下半部为3分钟倒计时,单击
故在拖出后,除需将Caption属性中内容清空以外,只需将
图片其它位置则时间停止,单击文字则程序退出,程序运行
其放至image1控件上合适位置,而不需做其它属性更改。
时,界面如图1所示。
1.3 timerl计时器控件、WindowsMediaPlayerl、Windows—
MediaPlayer2、WindowsMediaPlayer3多媒体控件的用法及属
纛羼赣通落最暴太蹇
性设置
在程序运行期间,计时器控件是不可见的,只在设计状
00:04:00
态下才可见。tmierl控件主要实现倒计时功能,在设计状态
下其属性不做修改。3个多媒体控件主要用于控制声音,其
中WindowsMediaPlayerl控件控制在最后3O秒时发出一声
图1
警报,WindowsMediaPlayer2控件控制最后3O秒至时间结束
1.1窗体控件、image1、image2图片框控件的用法及属性设
期问钟表读秒声音,WindowsMediaPlayer3控件控制在时间
置
结束时发出一声结束音。这三个控件在设计状态下,均需将
程序在运行后,要求不能出现VB窗体界面,所以,选
其visible属性设置为“False”,表示在程序运行过程中是不
中窗体后,首先将Borderstyle属性设置为“0一none”,指定
可见的。
窗体没有边框样式。同时,程序中使用的2个图片框主要用
2功能实现代码
来显示演讲赛图标及文字,所以首先要在Photoshop中将图
为实现该倒时计功能,需要设计并输入相应对象相应
标和文字处理成图片,然后在窗体的适当位置拖出2个图
事件或过程的程序代码。方法是:在设计状态,双击相应控
片框,分别将其加载进来。其中,imagel控件中存放图标, 件,在弹出的“对象~过程”编辑窗口选择相应的过程,并
image2控件中存放文字,要注意的是,经Photoshop中处理
输入相应的VB程序代码。
后的图片,一定要保存为BMP格式,否则在程序中将不能
2.1通用声明及倒计时功能函数
正常显示。图片加载之后,要不断运行程序查看实际效果,
在程序中需要有一批变量或常量的定义,可事先在通
经反复调整之后,确定图片显示的最佳位置。
用声明中完成,代码如下:
1.2 Label1、label2、label3标签控件的用法及属性设置
Option& cit 显示声明
在该倒计时器中,label1控件主要用来显示倒计时时
Private Declare Function GetWindowLong Lib usor32 Alias
间,label2和label3控件分别用来控制图标上下两个部分。
GetWindowLongA (ByVal hwnd As Long, ByVal n/ndex As
在设计状态下,选中labell控件后,将Alignment属性设置
Long)As Long
Private Declare Function SetWindowLong Lib user32 Alias
为“2-center”,表示该标签中文本对齐方式为居中对齐;将
SetWindowLongA (ByVal hwnd As bI1g,ByVal nlndex As Long,
Autosize属性设置为“true”,表示该标签将自动调整大小以
ByVal dwNewLong As Long)As Long
收稿日期:2010一Ol一19
王瑜郧阳师范高等专科学校计算机科学系讲师(湖北,丹江口442700)。
・ 63 ・
Private Declare Function SetLayeredWindowAttrlbutes Lib user32
(ByVal hwnd As Lo%ByVal crKey As Long,ByVal pl1a As
LW C0L0RKEY 窗体始终悬浮各窗口之上
多媒体控件关闭 WindowsMediaPlayerI.Close
WindowsMediaPlayer2.Close
WindowsMediaPlayer3.Close
End Sub
Byte,ByVal dwFlags As Long)As Long
Private Coast WS
EXLAYERED=&H80000
__
Private Coast GWIJ s1_YLE=(-20)
Private Conat LWAALPHA=&H2
_
2.3计时器的timer过程及代码
Private Const LW OLORKEY=&HI
一
计时器控件代码部分完成的功能是整个倒计时的核
ByVal
_
Private Declare Function SetWindowPos Lib”user32” (
hvmd As Long,
_
ByVal hWndlnsertAfter As Long。
ByVal X As
心,在程序运行之后,不管单击image1控件的上半部还是
下半部,时间都会自动开始倒计时,其代码如下:
Long,ByVal Y As ng,ByVal cx As L0ng,ByVal cy As Long,
一
一
ByVal wFlags As Long
一
)As Long 调用API函数设置窗体
透明
Const HWND
_
TOPMOST=一1
Const S SHOWMNDOW=&H40
Dim ss,trim,hh As Integer 设置倒计时变量
除上述变量声明外,倒计时功能编写子过程,过程名
为:hmstostring,相应代码如下:
Private Function hmstostring(ByVal h As Integer, ByVal m As
Integer,ByVal s As Integer)As String
Dim hhs,nlnl8,888 As Stirng
If h<lO 111en
hhs= +Trim(Str(h))
倒计时小时显示内容
Else
hhs=Trim(Str(h))
End If
If m<10 Then
arms= +Trim(Str(m))
倒计时分钟显示内容
Else
nlnls=Trim(Str(m))
End If
fI s<10 Then
888= 0 +Trim(Str(8))
倒计时秒钟显示内容
Else
888=Trim(Str(s))
End If
hmstostirng hhs+ : +mm8+ :”+888 倒计时时间显示
格式
End Function
2.2窗体的load过程及代码
在程序运行后,需将窗体放至屏幕上固定位置,并且要
求能始终悬浮其它各窗口之上。同时要求多媒体控件处于
关闭状态,代码如下:
Private Sub Form
_
load()
Dim retValue As Long
retValue=¥etWindowPos(Me.hwnd.HWND
_
TOPMOST,Me.Cur-
rentX,Me.CurrentY,900,650,SWP
_
SHOWWINDOW) 设置窗
体在屏幕上的位置
Dim rtn As Long
tin=GetWindowLong(hwnd.GWL
_
EXSTYLE)
rtn=rtn Or WS
_
Ex_LAYERED
SetWindowLong hwnd,GWL EXSTYLE,rtn
SetLayeredWindowAttributes hwnd,RGB(255,255,255),100,
Private Sub Timerl
_
Timet()
fI ss<1 Then
If mm<1 Then
If hh<1 Then
Timer1.Interval=0
1.abel1.Caption= 时间到l 若时间结束,则显示时间到
Image3.Visible=False
WindowsMediaPlayer3.URL=VB.App.Path& 、3.waytt 加载结
束音
WindowsMediaPlayer3.esttings.playCount=1 播放次数为1
Exit Sub
Eles
hh=hh一1
nnn=59
ss=59
End If
Else
innl=alfl—l
ss=59
End If
Eles
ss=ss—l
fI ss=30 And In工n<l And hh<l Then
WindowsMediaPlayerI.URL=VB.App.Path& 1.way" 最后3O
秒发出警告音
WindowsMediaPlayer1.esttings.playCount=1 播放次数为l
EndⅡ
If ss<=10 And mill<l And hh<l Then
Image3.Visible=True
WindowsMediaPlayer2.Controls.PlHy
WindowsMediaPlayer2.URL=VB.App.Path&”k2.arp3 最后3O
秒至结束读秒
If ss=0 And lm=0 And hh=0 Then
WindowsMediaPlayer2.Close 当时问结束时,读秒音结束
End If
End If
End If
Labell。Caption=hmstostring(hh,ram,ss) 调用倒计时函数完成
时间显示
End Sub
2.4标签的click事件及代码
在imagel图片框的上下两个部分,分别放了两个标签,
用于控制不同的倒计时时间,其代码如下:
201O弃4月 电 脑 学 习 第2期
C语
言函 数参数的求值顺序
及可
变参数函数的设计方法
樊益民‘ 黄南川
摘 要:详细介绍了c语言函数参数的求值顺序及可变参数函数的设计方法。
关键词:函教 求值顺序 可变参数
中图分类号:TP311 文献标识码: A 文章编号:1002—2422(2010)02—0065-02
Order of Evaluation of Function Parameters and
Design Method of Variable Argument Function in C Language
Fan Yimin Huang Nanchuan
aborates in detail order of evaluation of function parameters,and presents design method of variable at-
Abstract:
The paper el
gument function in C language.
Keyword:
Function Order of Evaluation Variable Argument Function
1问题的提出
C语言函数参数的求值顺序及可变参数函数的设计方
法在一般的教课书上很少提及,但此方法在实际应用中却
经常碰到。设计参数数目可变的C语言函数方法,将有助于
初学C语言的人及C语言业余爱好者掌握和应用。
3设计变参数函数所需模式说明
rune(type arm,type ara2….)
{
+・ 第一步:定义指向可变参数列表的指针 ・
va
_
list ap;
・ 第二步:取得第一个可变参数的指针
va
2 C语言函数参数的求值顺序
C语言函数在调用时实参的求值顺序为自右向左而非
想当然的自左向右顺序,这在一般情况下不会引起误会,但
在某些情况下就会引起误解,看下面实例:
int i=1:
start(ap,ara2); 一定要”… 之前的那个参数
十 }第三步:逐个取出可变参数的值々・
_
_
type val=va
arg(ap,type);
/脏意:参数类型type一定要相同,即:char P=va._arg(叩,
char}):
/Ant i=va_arg(ap’int);
printf( %d%d%d\n”,i,++i,++i);
//tz果有多个参数继续调用va arg
+ +第四步:结束调用 {
实际的输出结果是:2,3,3而非1,2,3
Private Sub Label2 Click()
WindowsMediaPlayer2.Close
Image3.Visible=False
Timer1.Enablod= se
ss=0
Label1.Caption=hmststroing(hh。mm,ss)
时问显示
Timer1.Interval=1000
调用倒计时函数完成
Timer1.Enabled=True End Sub
hh=Int(4/60)
inln=4一hh
SS=0
3结束语
利于VB编写倒计时程序的设计与实现是以科学的设
调用倒计时函数完
60
Label1.Caption=hmststoring(hh。nun,ss)
成时间显示
Timer1.Interval=1Ooo
End Sub
计为基础,以合理的设计思想为指导,以必要的程序设计语
言为工具,基本上满足了用户的需要,最大的特点是界面精
美,窗体透明,且可悬浮于其它各窗口之上。
参考文献
_
Private Sub LabeD
Click() 0分钟倒计时
川1胡晓娟,王兰.利用VB实现可重复使用的倒计时器忉.新疆:新
疆师范大学学报(自然科学版),2007(9).
WindowsMediaPlayer2.Close
Image3.Visible=ndse
Timer1.Enabled=False
【2】赵万龙,编著.Visual Basic程序设计【M】.北京:中国铁道出版
社,2006. ‘
Timed.Enabled=Tme
hh=Int(3/6O)
rnm=3一hh・60
【3刘瑞新,李树东,万朝阳,编著.Vi3】sual Basic程序设计教程【M】.
北京:电子工业出版社,2001.
收稿日期:2010—01—22
¥樊益民河北工业大学廊坊分校副教授(河北,廊坊065000)。
・
65 ・
版权声明:本文标题:巧用VB模拟倒计时器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711526678a598388.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论