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 ・ 


本文标签: 控件 倒计时 设计 参数 函数