基于VB60的钟表设计Word文档下载推荐.docx
- 文档编号:18708111
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:14
- 大小:103.97KB
基于VB60的钟表设计Word文档下载推荐.docx
《基于VB60的钟表设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于VB60的钟表设计Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
2.1VisualBasic6.0简介
VisualBasic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
它简单易学、效率高,且功能强大。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
2.1.1工作界面简介:
默认的VB工作界面由标题栏
(1)、菜单栏
(2)、工具栏(3)、工具箱面板(4)、程序设计区(5)、项目窗口(6)、属性窗口(7)、布局窗口(8)组成,至于它们具体有什么作用,我们将在以后的实例学习中接触,这里就不予以说明。
2.1.2编写我的第一个应用程序:
<1>、应用程序要产生的效果:
创建的应用程序要有什么样的功能?
这是开发每一个应用程序必须最先想到的。
我们的第一个应用程序非常简单,使用者只需点击程序上的一个按钮.
<2>、开发思路:
根据应用程序要实现的功能,那么我们至少需要制作一个按钮、一个程序界面,为了让应用程序更规范,我们还需要创建一个用来显示“跟我来学VB神童教程”字样的容器。
2.1.3、知识点:
(1)、我们的第一个程序确实非常简单,但它道出了程序设计的基本方法:
首先,应用程序要用来做什么?
也就是开发应用程序的目的;
其次,应用程序大体上由哪些元素组成?
也就是应用程序的操作界面如何,如果可能,最好先用笔把程序界面画出来;
然后是对程序界面中每一个元素的属性进行设置;
最后输入程序代码和调试。
(2)、前面我们所谈到的“命令按钮”、“标签按钮”,其实它们准确的说法是“命令按钮控件”、“标签按钮控件”,无论是这些控件,还是刚才作为应用程序界面的“窗体”,都是“对象”,因此,VB是一门面向对象的编程语言,每一个对象都具有很多属性,如大小、位置、标题等等。
属性的设置通过属性窗口完成。
(3)、这一点的内容不需强记,在以后的控件讲述中将会涉及。
除了“命令控钮控件”、“标签按钮控件”,默认的工具箱面板上还有“指针”工具(用来选择程序设计窗口中的对象)、图片控件(在界面上添加图片)、文本框控件(在界面上显示文本或用来输入文本)、选项框控件(主要用来作为区域划分的控件,一般把相同类型的控件放置在一个选项框中,把其他类型的控件放在其他选项框中)、复选控件(用来制作复选按钮)、单选控件(制作单选按钮)、组合框控件(用来制作功能更为强大的列表框,既有文本框控件的功能,还有列表框控件的功能)、列表框控件(制作各种列表)、滚动条控件(共有横向与竖直两种)、时钟控件(一般用来添加时间触发)、文件操作控件(共有磁盘列表框控件、文件夹列表框、文件列表框三种),另外,还有绘图控件、图像框控件、日期控件。
(4)、VB提供了丰富的控件选择,除了默认的工具箱面板上的控件外,还有很多控件没有罗列出来,我们可以通过“工程‖部件”命令或在工具箱面板上单击鼠标右键.
2.2运用的控件和主要对象
我们在设计过程中主要用到的控件有:
Form,Commandbutton,MsgBox,Label,Frame,PictureBox等。
1、窗体(Form)
窗体就是平时所说的窗口,它是VB编程中最常见的对象,也是程序设计的基础。
各种控件对象必须建立在窗体上,即窗体是所有控件的容器。
一个窗体对应一个窗体模块。
2、命令按钮(Commandbutton)
命令按钮是VB应用程序中使用最多的控件之一,它常常用来接受用户的操作信息,激发相应的事件过程,是用户与程序交互的最简便的方法。
3、消息框(MsgBox)
在Windows中,如果操作失误,通常会在屏幕上显示一个对话框,提示用户进行选择,然后系统根据选择确定其后的操作。
VB提供了MsgBox函数就可以实现此功能,它可以向用户传送信息,并可以接收用户在对话框上的选择,以次作为程序继续执行的依据。
4、标签(Label)
VB提供的标签控件只能显示文本,而不能对文本进行编辑。
标签通常用于标注本身不具有Caption属性的控件。
5、框架(Frame)
框架主要用做控件的容器,也用于修饰界面。
6、图片框(PictureBox)
该控件可以用来显示图象,包括位图文件、图标文件、光标文件、元文件、增强的元文件、JPEG文件、GIF文件。
第3章设计实现
3.1主窗体
本窗体起着菜单的作用。
一切功能都通过菜单实现。
窗体中仅有一个text文本框。
文件包括:
新建、打开、保存、查看源代码和退出。
新建就是清空text,建立一个新的文档。
打开和保存分别是弹出一个打开文本和保存文本的对话框,选择路径打开和保存文件。
查看源代码就是将存有整个设计源代码的txt文件打开在text中。
编辑包括:
剪切、复制、粘贴。
文本包括:
字体和颜色。
就是对text中文本的字体和颜色进行编辑。
但是功能不是很完善,不能针对选种的文本进行编辑,只能一块儿改变。
显示时钟就是显示时钟窗体(form1)。
屏幕保护包括立即启动和定时设置。
代码:
PrivateSubForm_Load()
StaticcanshuAsInteger
canshu=0
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
UnloadForm3
EndSub
PrivateSubForm_Resize()'
保持text随窗体的变化而变化
Text1.Width=Form2.Width-300
Text1.Height=Form2.Height
Text1.Left=200
PrivateSubfuzhi_Click()'
复制
Clipboard.Clear
Clipboard.SetTextText1.SelText
PrivateSubjianqie_Click()'
剪切
Text1.SelText="
"
PrivateSubkandaima_Click()'
按相对路径把存有整个设计源代码的txt文件在text中打开
DimstrtempAsString
DimstroutAsString
OpenApp.Path&
"
..\daima.txt"
ForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,strtemp
Text1.Text=Text1.Text+strtemp+Chr(13)+Chr(10)
Loop
Printstrout
Close#1
PrivateSubqiyong_Click()
LoadForm3'
启用屏幕保护程序
Form3.show
PrivateSubshizhong_Click()'
显示时钟窗体
Form1.show
PrivateSubTimer1_Timer()
'
判断是否到启用屏幕保护程序的时间了
IfFormat(Time,"
LongTime"
)=settimeThen
Timer1.Enabled=False
EndIf
PrivateSubtuichu_Click()
退出
UnloadMe
PrivateSubusetimeset_Click()
屏幕保护时间设置对话框
settime=InputBox(Space(4)&
请您设定要启用屏幕保护程序的时间:
(注意:
输入时间的格式必须为“LongTime”,例如“1:
05:
00”!
!
)"
"
启用屏幕保护时间设定"
Format(Time,"
))
PrivateSubxinjian_Click()'
清空text,新建文件
Text1.Text="
Text1.SetFocus
PrivateSubyanse_Click()'
调出颜色对话框,对text中文本颜色进行设置
OnErrorResumeNext
CommonDialog1.ShowColor
IfErr.Number<
>
32755Then
Text1.ForeColor=CommonDialog1.Color
EndSub
PrivateSubzhantie_Click()'
粘贴
Text1.SelText=Clipboard.GetText()
PrivateSubziti_Click()'
调出字体编辑对话框,对text中文本字体进行设置
OnErrorResumeNext
CommonDialog1.Flags=&
H200+&
H3+&
H100
CommonDialog1.ShowFont
IfErr.Number<
Text1.FontName=CommonDialog1.FontName
Text1.FontSize=CommonDialog1.FontSize
Text1.FontBold=CommonDialog1.FontBold
Text1.FontItalic=CommonDialog1.FontItalic
Text1.FontStrikethru=CommonDialog1.FontStrikethru
Text1.FontUnderline=CommonDialog1.FontUnderline
EndIf
3.2时钟窗体
同样窗体以一个图片为背景,衬作时钟的标签。
中间为一个shape控件(圆)。
控件上有三条线,分别为时钟的表针。
通过调用系统时间并且控制线的坐标来控制其走动。
表盘刻度为程序代码所画。
功能包括:
闹时设置、系统时间(显示、取消)、声音(有、无)和退出。
闹时设置就是看系统时间是否与设置时间相同,然后决定要不要打开闹铃音乐。
系统时间显示时会出现在窗体的caption处。
声音的有无就是秒针走动是有没有beep声。
DimX0,Y0,r1,r2,r3AsInteger,timesetAsString
Constpi=3.1416
PrivateSubdrawclock()'
定义一个过程用来画表盘刻度
DimiAsInteger
Fori=0To59
theata=(i*6-90)/180*pi
IfiMod15=0Then'
画3,6,9,12四个时刻度(较长)
Form1.DrawWidth=1
Form1.Line(X0+(Shape1.Height/2-200)*Cos(theata),Y0+(Shape1.Height/2-200)*Sin(theata))-(X0+Shape1.Height/2*Cos(theata),Y0+Shape1.Height/2*Sin(theata)),vbBlue
ElseIfiMod5=0Then'
画其他时刻度(稍长)
Form1.Line(X0+(Shape1.Height/2-100)*Cos(theata),Y0+(Shape1.Height/2-100)*Sin(theata))-(X0+Shape1.Height/2*Cos(theata),Y0+Shape1.Height/2*Sin(theata)),vbBlue
Else
Form1.DrawWidth=1'
画分刻度(较短)
Form1.Line(X0+(Shape1.Height/2-50)*Cos(theata),Y0+(Shape1.Height/2-50)*Sin(theata))-(X0+Shape1.Height/2*Cos(theata),Y0+Shape1.Height/2*Sin(theata)),vbBlue
Nexti
PrivateSubcancel_Click()
Timer2.Enabled=False'
取消系统时间显示
Form1.Caption="
时钟"
Timer3.Enabled=True
Dimr,i,j
X0=Shape1.Left+Shape1.Width/2'
定义表盘的中心在shape的中心
Y0=Shape1.Top+Shape1.Height/2
r=Shape1.Height/2'
表盘的半径为shape高的一半
'
计算时针,分针,秒针的长度
r1=Sqr((Line1.X2-Line1.X1)^2+(Line1.Y2-Line1.Y1)^2)
r2=Sqr((Line2.X2-Line2.X1)^2+(Line2.Y2-Line2.Y1)^2)
r3=Sqr((Line3.X2-Line3.X1)^2+(Line3.Y2-Line3.Y1)^2)
PrivateSubno_Click()
Timer3.Enabled=False
PrivateSubshezhi_Click()
闹钟时间设置
timeset=InputBox(Space(4)&
注意:
输入时间的格式必须为“LongTime”,例如“1:
闹钟设置"
PrivateSubshow_Click()
系统时间显示
Timer2.Enabled=True
Form1.Caption=Format(Time,"
)
当系统时间和设置时间相同时,按相对路径调入并播放铃声音乐
)=timesetThen
Timer1.Enabled=True
MMControl1.FileName="
..\时钟\music.MP3"
MMControl1.Command="
open"
play"
Line1.Visible=True'
表针可见
Line2.Visible=True
Line3.Visible=True
Calldrawclock'
调出画表盘刻度的过程
表针的转动控制
Dimt1,t2,t3AsInteger,theata1,theata2,theata3AsDouble
t1=Second(Time)
theata1=(t1*6-90)/180*pi
Line1.X1=X0-150*Cos(theata1)
Line1.Y1=Y0-150*Sin(theata1)
Line1.X2=X0+r1*Cos(theata1)
Line1.Y2=Y0+r1*Sin(theata1)
t2=Minute(Time)+t1/60
theata2=(t2*6-90)/180*pi
Line2.X1=X0-100*Cos(theata2)
Line2.Y1=Y0-100*Sin(theata2)
Line2.X2=X0+r2*Cos(theata2)
Line2.Y2=Y0+r2*Sin(theata2)
t3=Hour(Time)+t2/60+t1/3600
theata3=(t3*30-90)/180*pi
Line3.X1=X0-50*Cos(theata3)
Line3.Y1=Y0-50*Sin(theata3)
Line3.X2=X0+r3*Cos(theata3)
Line3.Y2=Y0+r3*Sin(theata3)
PrivateSubTimer2_Timer()
)'
将系统时间显示在窗体顶部
PrivateSubTimer3_Timer()
Beep
PrivateSubtuichu2_Click()
PrivateSubyes_Click()
图1.1时钟窗体
3.3屏幕保护窗体
将窗体背景设为深蓝。
在加载时使其全屏。
在其上面循环画几何曲线。
使其看起来有动态效果。
这个设计是循环画出60个不同的几何图形。
代码如下。
PrivateDeclareFunctionShowCursorLib"
user32"
(ByValbShowAsLong)AsLong
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
ShowCursor
(1)
PrivateSubForm_Load()'
使窗体全屏显示
ShowCursor(0)
Form3.Width=screen.Width
Form3.Height=screen.Height
Me.Move0,0,screen.Width,screen.Height
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
StaticX11,Y11AsSingle
X11=X11+1
Y11=Y11+1
IfX11>
=5OrY11>
=5Then
X11=0
Y11=0
Statict,X1,Y1,X2,Y2,i,r,shu1,shu2AsSingle
Scale(-1,1)-(1,-1)'
重定义系统坐标(中心为原点,右X正方向,上为Y正方向,两轴总长均为2)
i=i+0.02
Ifi<
=pi/2Then'
以pi/2为一个周期
r=Cos(shu1*i)
X2=r*Cos(i)
Y2=r*Sin(i)
Ifshu2<
=20Then
Line(Y2,X1)-(-Y1,-X2)
Line(-Y2,X1)-(Y1,-X2)
Line(Y2,-X1)-(-Y1,X2)
Line(-Y2,-X1)-(Y1,X2)
ElseIfshu2<
=40Then
Line(Y1,X1)-(-Y2,-X2)
Line(-X1,Y1)-(Y2,-X2)
Line(X1,-Y1)-(-Y2,X2)
Line(-Y1,-X1)-(Y2,X2)
=60Then
Line(X1,Y2)-(X2,Y1)
Line(-X1,Y2)-(-X2,Y1)
Line(X1,-Y2)-(X2,-Y1)
Line(-X1,-Y2)-(-X2,-Y1)
=80Then
Line(X1,Y1)-(X2,Y2)
Line(-X1,Y1)-(-X2,Y2)
Line(X1,-Y1)-(X2,-Y2)
Line(-X1,-Y1)-(-X2,-Y2)
Else:
shu2=0'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VB60 钟表 设计