VB实例(含代码和窗体)_第1页
VB实例(含代码和窗体)_第2页
VB实例(含代码和窗体)_第3页
VB实例(含代码和窗体)_第4页
VB实例(含代码和窗体)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-作者xxxx-日期xxxxVB实例(含代码和窗体)【精品文档】VB实例第一天、使用VB收发电子邮件大叔:我说LOLI呀,既然你已经学习过VB的基础知识,也做过一些简单的程序,那么我也就不浪费口水教你认识界面、了解控件和学习语法了。不如我来教教你怎么样制作出一些切实可用的程序,这样既能够加深对VB的认识,还可以让你拥有十足的成就感呢!LOLI:好呀,那做一些什么程序呢?大叔:当然不会像我哥哥当年那样简单至极的程序,而是一些具有实用性的程序,也可以做一个小游戏之类的,你看怎么样? LOLI:好的,不过今天别教我做游戏,不然明天就没有心思学了。大叔:这个我自然知道,那我们就开始动手制作一个收发电子

2、邮件的程序吧。LOLI:收发电子邮件?这个会不会很难呢?大叔:正所谓会者不难,难者不会,有我这位名师指点,你还怕什么呢?开始动手吧!一、准备工作大叔:在VB中编写电子邮件程序需要通过调用微软公司的MAPI(Messaging Application Programming Interface,消息应用程序编程接口),这需要借助两个实现电子邮件收发功能的核心控件:MAPI会话控件和MAPI消息控件。MAPI会话控件用于建立和控制一个Microsoft Mail会话,MAPI消息控件用于创建和收发邮件消息。此外,Windows系统中必须要有遵从MAPI的邮件系统,比如Exchange、Outloo

3、k等软件,而还要进行一番设置,确保邮件系统可以正常使用。LOLI:呵呵,没关系,我用的就是Outlook,正好符合要求。不过你说的MAPI控件在哪里找呢? 大叔:在VB中就有现成的,不过程序没有直接放置在工具箱里,需要我们自己将MAPI控件加入VB工具箱。首先直接在VB左边的控件栏中右击鼠标,并在弹出菜单中选择“部件”命令,这时可以激活部件设置窗口,在其中的“控件”列表框中选取“Microsoft MAPI Controls”一项(如图1所示),接着按下“确定”按钮之后可以发现工具箱中将多出了两个图标,这就是MAPI会话控件和MAPI消息控件的图标(如图2所示)。 图一图二二、邮件发送程序大叔

4、:添加好我们所需要的控件之后,就开始定制邮件的发送程序吧。这个邮件发送程序的基本处理过程是:根据用户输入信息组成邮件,然后使用MAPI消息控件的Send方法将邮件发出。具体的方法按照下述步骤完成:1、新建一个VB项目,并将缺省窗体Form1的Caption属性设置为“发送邮件”。 2、在Form1中加入一个MAPI会话控件MAPISession1和一个MAPI消息控件MAPIMessages1。3、在Form1中加入三个TextBox控件,将它们的名称属性分别设置为“txtSendTo”、“txtSubject”和“txtMessage”,另外还要将txtMessage的Multiline属性

5、设置为“True”。这三个TextBox控件将分别用于填写邮件的收件人地址、邮件主题和邮件正文。4、在Form1中加入三个Label控件,将它们的Caption属性分别设置为“收件人”、“主题”和“内容”,并将它们放在合适的位置用以标注相应的TextBox控件。5、在Form1中加入一个Command Button控件,将其Caption属性和名称属性分别设置为“发送”和“Send”。所有的控件添加完毕之后应该如图3所示。图三LOLI:还挺像这么回事的呢,接着应该填写代码了吧。大叔:是呀,下面就是代码部分的内容:1、将下列代码加入Form1的Form_Load事件:Private Sub Fo

6、rm_Load()MAPISession1.SignOn/运行程序之后进行邮箱登录操作End Sub 2、将下列代码加入Form1的Form_Unload事件:Private Sub Form_Unload(Cancel As Integer)MAPISession1.SignOff/退出程序时候进行退出邮箱操作End Sub 3、将下列代码加入cmdSend的Click事件:Private Sub cmdSend_Click()With MAPIMessages1.MsgIndex = -1.RecipDisplayName = txtSendTo.Text/收信人地址.MsgSubject

7、 = txtSubject.Text/邮件主题.MsgNoteText = txtMessage.Text/邮件正文.SessionID = MAPISession1.SessionID/发送程序和邮件工具之间建立的任务数.SendEnd WithMsgBox 邮件发送完毕!, , 发送邮件/发送成功显示信息框End Sub 这样一个电子邮件发送部分就制作完成了,运行程序之后只要填写好邮件的收件人、主题和内容后,按下“发送”命令按钮,邮件就已经成功地发往目的地了(如图4所示)。图4LOLI:真的发送出去了,不过这是不是你的障眼法呢?我要收到这封信才相信!大叔:对我还不相信?好吧,下面再制作一个

8、邮件接收程序来收取这封信件。三、邮件接收程序大叔:邮件接收程序比邮件发送程序要复杂一些,这个程序首先需要使用MAPI消息控件的Fetch方法读取邮件,这个过程将把用户收件箱中所有未读邮件全部装入MAPI消息控件中。接着,检查MAPI消息控件的MsgCount属性以确定通过Fetch方法读取的邮件的总数,然后可以通过设置MAPI消息控件的MsgIndex属性来指定具体需要处理哪一封邮件。需要说明的是,MsgIndex属性值的计数是从0开始的,也就是说,第一封邮件的索引号是0,第二封邮件的索引号是1,依次类推。具体步骤如下: 1、新建一个VB项目,将缺省窗体Form1的Caption属性设置为“接

9、收邮件”。2、在Form1中加入一个MAPI会话控件MAPISession1和一个MAPI消息控件MAPIMessages1。3、在Form1中加入三个Label控件和一个TextBox控件,将三个标签控件的名称属性分别设置为“lblMsgDateReceived”、“lblMsgOrigDisplayName”和“lblMsgSubject”,将TextBox控件的名称属性设置为“txtMsgNoteText”,并将标签控件的Caption属性和文本框控件的Text属性的内容清空。这四个控件将分别用于显示邮件的日期、发件人、主题和内容。4、将txtMsgNoteText控件的Locked属性

10、和Multiline属性设置为“True”,ScrollBars属性设置为“2-Vertical”。5、在Form1中再加入四个Label控件用于标注上述四个控件,将它们的Caption属性分别设置为“日期”、“发件人”、“主题”和“内容”。6、在Form1中加入一个Label控件,将其名称属性设置为“lblMsgCount”,Caption属性设置为“第 0 封邮件,总计 0 封邮件”。这个控件用于显示接收的邮件总数以及当前正在处理第几封邮件。7、在Form1中加入三个Command Button控件,将它们的名称属性分别设置为“cmdPrevious”、“cmdNext”和“cmdClos

11、e”,Caption属性分别设置为“上一封”、“下一封”和“关闭”。LOLI:那么具体的程序代码呢?大叔:又着急了不是?我还会骗你吗?下面就是具体的程序代码:1、编写一个子程序FetchNewMail:Public Sub FetchNewMail()MAPIMessages1.FetchUnreadOnly = TrueMAPIMessages1.Fetch/Fetch命令将信件抓到系统存贮器的inbuffer中End Sub 2、编写一个子程序DisplayMessage:Public Sub DisplayMessage()lblMsgCount.Caption = 第 & Ltrim(

12、Str(MAPIMessages1.MsgIndex + 1) & 封邮件,总计 & Ltrim(Str(MAPIMessages1.MsgCount) & 封邮件/由MsgCount知道信件数量,再用MsgIndex设置要看哪一封信件的内容、标题lblMsgDateReceived.Caption = MAPIMessages1.MsgDateReceived/收取信件的日期txtMsgNoteText.Text = MAPIMessages1.MsgNoteText/收取信件的内容lblMsgOrigDisplayName.Caption = MAPIMessages1.MsgOrigDi

13、splayName/发送邮件的姓名lblMsgSubject.Caption = MAPIMessages1.MsgSubject/邮件主题End Sub 3、将下列代码加入Form1的Form_Load事件:Private Sub Form_Load()MAPISession1.SignOnMAPIMessages1.SessionID = MAPISession1.SessionIDFetchNewMail/调用Fetch子程序DisplayMessage/调用DisPlayMessage子程序End Sub 4、将下列代码加入cmdPrevious的Click事件:Private Sub

14、 cmdPrevious()If MAPIMessages1.MsgIndex 0 ThenMAPIMessages1.MsgIndex = MAPIMessages1.MsgIndex - 1/当收取信件超过1封的时候,通过“上一封”按钮查看前面的信件DisplayMessageElseBeepEnd IfEnd Sub5、将下列代码加入cmdNext的Click事件:Private Sub cmdNext_Click()If MAPIMessages1.MsgIndex MAPIMessages1.MsgCount - 1 ThenMAPIMessages1.MsgIndex = MAPI

15、Messages1.MsgIndex + 1/当收取信件超过1封的时候,通过“下一封”按钮查看后面的信件DisplayMessageElseBeepEnd IfEnd Sub6、将下列代码加入cmdClose的Click事件:Private Sub cmdClose_Click()Unload MeEnd Sub 程序运行后,在窗体加载过程中,窗体Load事件中的代码会读取新邮件,如果有新邮件,就显示第一个新邮件,如果有多个新邮件,则可以使用“上一封”和“下一封”命令按钮前后翻阅。你再看看,这封收取下来的邮件是不是我们刚才发送出去的?LOLI:呵呵,真厉害!其实刚才我知道你肯定可以收到这封邮件

16、的,只不过是说着玩的,嘿嘿。我来试着给别人发送一些邮件。大叔:那你就用它给好朋友发送几封邮件,告诉他们是用你自己编写的程序发送的,他们保证大吃一惊呢。第二天、自制媒体播放器LOLI:大叔来看我刚刚下载的黑衣人2,可好玩了。大叔:用MediaPlayer看的?不如这样吧,今天我教你怎样制作一个媒体播放器,你看如何?LOLI:自己做的媒体播放器也可以看黑衣人2吗?大叔:那是当然的,不然我岂不是变成了大骗子?LOLI:呵呵,那感情好呀,这样我可以拿到班上给同学炫耀一下喽。大叔:我们这个媒体播放器的目的是可以播放VCD、WAV、MP3等媒体文件,而且全部的功能基本上和Windows附带的媒体播放器差不

17、多。其实要制作这样一个播放器并不困难,因为在VB中提供了一个MediaPlayer控件,它帮我们解决了很多实际问题,只要按照下面的步骤就可以了。1、因为我们需要使用到MediaPlayer控件,所以刚开始就要右击工具面板并在部件添加窗口里选择“Windows MediaPlayer”来添加这个控件,同时还要添加“CommonDialog”控件。2、在窗口设计器中创建一个MediaPlayer控件、五个Command Button控件和一个CommonDialog控件。3、将Form1的Caption属性更改为“大叔的媒体播放器”。4、分别将五个Command Button控件的Caption属

18、性分别命名为“暂停”、“播放”、“停止”、“选择”和“退出”,然后把它们按照一定的位置放好。5、选中CommonDialog控件之后,在右边属性的“Filter”对话框中输入“*.RMVB|*.wav)|*.wav|MIDI(*.mid)|*.mid|MPEG(*.mpeg)|*.mpeg|DAT(*.dat)|*.dat|AVI(*.avi)|*.avi|MP3(*.mp3)|*.mp3”的文件过滤选项,这样就可以支持各种常见的媒体影像文件了。LOLI:看起来和真正的MediaPlayer差不多呀,还蛮有专业水准的呢。大叔:是呀,这全要归功于MediaPlayer控件,下面就是代码编写部分内

19、容了:1、首先要双击Form1窗口,并选择“通用”对象,输入下面的通用代码:Option ExplicitDim playfilename As String/定义播放文件的名称Dim playposition As Double/定义当前播放的位置 2、双击“暂停”按键并输入下列代码:Private Sub Command1_Click()Command1.Enabled = False/暂停按键失效MediaPlayer1.Pause/暂停播放playposition = MediaPlayer1.CurrentPosition/当前的播放位置End Sub 3、双击“播放”按键并输入下列

20、代码:Private Sub Command2_Click()Command1.Enabled = True/暂停按键有效Command3.Enabled = True/停止按键有效MediaPlayer1.filename = playfilename/播放媒体文件名称MediaPlayer1.SelectionStart = playposition/当前播放的位置MediaPlayer1.Play/播放媒体文件End Sub 4、双击“停止”按键并输入下列代码:Private Sub Command3_Click()playposition = 0/停止播放Command3.Enable

21、d = False/停止按键无效Command1.Enabled = False/暂停按键无效Command2.Enabled = True/播放按键有效MediaPlayer1.Stop/停止播放End Sub 5、双击“选择”按键并输入下列代码:Private Sub Command4_Click()CommonDialog1.showopen/打开文件对话框playfilename = CommonDialog1.filename/记录播放文件名playposition = 0/第一次打开文件时候,播放位置为0End Sub 6、双击“退出”按键并输入下列代码:Private Sub C

22、ommand5_Click()Unload Me/卸载窗口End/结束程序End Sub 代码全部输入完毕之后,运行程序后按下“选择”按键,此时会弹出打开文件对话框供你选择需要播放的文件。选中相应的文件之后,就可以进行欣赏了。如果需要在别的计算机上使用这个程序的话,还可以选择“工具”菜单下的“生成.exe文件”选项来制作一个可以直接运行的exe格式文件,这样将程序复制到其他机器上就可以使用了。”LOLI:好开心呀,我来试试用自己做的程序看黑衣人2,哈哈,真过瘾!大叔:瞧你乐得这个劲,那你就慢慢看吧。对了,通过VB还可以制作Flash动画、QuickTime等多种格式的播放器,你自己不如依葫芦画

23、瓢的尝试一下,看看你的天份有多少,呵呵!LOLI:放心吧,保证不会让你失望的!第三天、定时闹钟程序 LOLI:叮当大叔,你知道Windows中的计划任务工作原理吗?它能够在指定的时间开始相应的工作,蛮方便的呢。大叔:不要认为它很神秘,其实用VB来设计这样一个程序是非常容易的事。不如今天就教你怎样制作一个简单的定时闹钟程序?这样可以在指定的时间到达之后自动运行设置好的程序,你看怎么样?LOLI:好呀,好呀,赶紧开始吧。大叔:首先要添加程序所需要的控件。1、新建一个工程,将Form1的startupposition属性设置为“2-centerscreen”,同时将maxbutton属性设置为“Fa

24、lse”。这样程序运行之后窗口出现在屏幕中间,而且最大化按钮处于无效状态。2、在Form1窗口中添加三个Command Button,分别将它们的Caption属性更改为“预设文件”、“设定时间”、“即时启动”和“退出”。3、在“预设文件”按钮后面放置一个Label控件用于显示预设的文件路径和名称,并且将它的Caption属性设置为空。4、在“设定时间”按钮后面放置三个Label控件,其中Label2和Label4的Caption属性设置为空,Label3控件的Caption属性设置为“当前时间:”。5、添加一个common dialog控件,不过别忘记需要从部件添加窗口里添加到工具箱中哟。6

25、、添加一个Timer控件,并将它的interval属性设置为500。所有控件添加设置完成后应该如图所示。LOLI:就这么简单的几个控件可以实现定时闹钟的功能吗?大叔:别小瞧了VB的功能,看完下面的代码再说吧。 1、双击Form1窗口,并选择“通用”对象,输入下面的通用代码:Option ExplicitDim AlarmTime/申明变量 2、双击“预设文件”按钮并输入下面的代码:Private Sub Command1_Click()Call dialog/调用dialog子程序End Sub 3、双击“设定时间”按钮并输入下面的代码:Private Sub Command2_Click()

26、AlarmTime = InputBox(请输入你想设定的时间,例如(19:12:00), 小闹钟)If AlarmTime = ThenExit SubIf Not IsDate(AlarmTime) Then/isdate函数是判断输入的是否可转换成date格式MsgBox 你所输入的不是时间格式,请重试!, ,Wrong Else AlarmTime = CDate(AlarmTime)End If/判断输入的是否可转换成time格式 End Sub 4、双击“即时启动”按钮并输入下面的代码:Private Sub Command3_Click()Call deng/调用deng子程序

27、End Sub5、双击“退出”按钮并输入下面的代码:Private Sub Command4_Click()endEnd Sub 6、双击Form1窗口,选择“Click”事件,并输入下列代码:Private Sub Form_Click()frmAbout.Show/显示关于对话框End Sub 7、双击Form1窗口,选择“Load”事件,并输入下列代码:Private Sub Form_Load() Command3.Enabled = 0 AlarmTime = /初始化时command3为不可用的End Sub 8、双击Form1窗口,选择“Resize”事件,并输入下列代码:Pri

28、vate Sub Form_Resize()If WindowState = 1 Thenmintime/如果窗口被最小化,则调用mintime程序elsecaption=小闹钟End IfEnd Sub 9、编写mintime子程序:Sub mintime()Caption = Format(Time, long Time)/使用长时间格式来显示时间End Sub 10、双击Timer1控件并输入下列代码:Private Sub Timer1_Timer()f Label2.Caption CStr(Time) ThenLabel2.Caption = AlarmTimeLabel3.Cap

29、tion = Time/显示时间每秒钟的变化End If If Time = AlarmTime ThenCall deng/判断如果现在的时间超过了设定的时间,则调用deng子程序End IfIf WindowState = 1 ThenIf Minute(CDate(Caption) Minute(Time) Thenmintime/最小化时显示时间每分钟的变化End IfEnd If End Sub 11、编写dialog子程序:Sub dialog() CommonDialog1.Flags = cdlCFBoth CommonDialog1.ShowOpenLabel1.Captio

30、n = CommonDialog1.filename/把打开的文件名给于label1If Label1 “ Then Command3.Enabled = 1/如果label1不为空时,则command3即可用ElseExit SubEnd If End Sub 12、编写deng子程序Sub deng() Dim ssss = Shell(Label1.Caption, 1)/启动指定的文件,并且结束小闹钟程序EndEnd Sub 好了,现在试着运行程序看看。先点击上部的“预设文件”按钮添加一个定时自动运行的程序,然后通过“设定时间”按钮设置好一个时间,这样当时间到达的时候就会自动运行你所需

31、要的这个程序了。LOLI:这倒不错,以后我用电脑学习一段时间之后就可以通过这个程序来定时运行游戏,这样就不会错过休息娱乐的时间了,哈哈。大叔:不会吧,我教你做的这个程序就用来定时玩游戏?我真是服了你!不管怎么样,好好研究一下这个程序,虽然很小巧,但的确是非常实用的!第四天、打字练习程序大叔:我说LOLI呀,前几分钟之前还看你在编程序,怎么现在又开始玩游戏了?LOLI:都是昨天定时程序的作用呀,我现在是编程10分钟,游戏50分钟,这样劳逸结合,安排的不错吧。大叔:有你这么安排的吗?整个就是在浪费时间!别玩游戏了,今天教你一些什么呢?LOLI:最好是寓教于乐的程序最好,比如一边玩游戏一边学习的。大

32、叔:给我出难题?那就教你一个寓教于乐的程序,来制作一个打字练习程序怎么样?LOLI:真的?也好,我先看看再说。大叔:OK,还是老规矩,先创建一些控件再说。1、新建一个工程,将Form1的Caption属性修改为“打字练习”,同时将MaxButton和MinButton两个属性都设置为“False”,这样在程序运行之后可以取消右上角的最小化和最大化按钮。2、添加一个Frame控件,将它的Caption属性设置为空,并且将BorderStyle属性设置为“0-None”,然后在这个Frame中添加1个Label控件。3、在Form1窗口中添加4个Label控件,其中两个Label控件的Captio

33、n属性分别设置为“得分”和“剩余”,另外两个Label控件的BackStyle和BorderStyle属性均设置为“1-Opaque”和“1-Fixed”,这样将使得它们以3D立体形式显示出来,最后分别将这两个Label控件的Caption属性设置为“0”和“200”。4、在Frame区域中再添加一个Label控件。5、在Form1窗口中添加一个Command Button控件,将它的Caption属性更改为“开始”。6、添加三个Timer控件,并将它的interval属性分别设置为100、1000和100。 所有控件添加设置完成后应该如图所示。LOLI:看起来好复杂的样子,代码编写部分是不是

34、也很繁琐?大叔:说难不难,说简单也不简单。我们的目的是通过嵌套在Frame中的两个Label控件来随机显示字母,然后通过键盘输入字母,由程序检验输入的字母和显示的字母是否一样,如果一样则说明正确,可以加分,否则说明输入错误。其实最关键要把握住编程的思想,这个说起来就话长了,还是看看具体的源代码怎么写吧。 1、双击Form1窗口,并选择“通用”对象,输入下面的通用代码:Option ExplicitDim score As Integer/定义变量Dim speed As Integer/定义变量2、编写init子程序(用于设置第一个出现的字母)Sub init()Label1.Caption

35、= Chr(Int(Rnd * 26) + 49)/设定Label1随机显示的字母speed = Int(Rnd * 100 + 100)/设定Label1随机显示字母的速度Label1.Left = Int(Rnd * Frame1.Width)/设定Label1代表字母出现的左边位置Label1.Top = Frame1.Top/设定Label1代表字母出现的顶部位置End Sub 3、编写init1子程序(用于第二个出现的字母)Sub init1()Label6.Caption = Chr(Int(Rnd * 26) + 97)/设定Label2随机显示的字母speed = Int(Rn

36、d * 100 + 100)/设定Label2随机显示字母的速度Label6.Left = Int(Rnd * Frame1.Width)/设定Label2代表字母出现的左边位置Label6.Top = Frame1.Top/设定Label2代表字母出现的顶部位置End Sub 4、双击“开始”按钮并输入下列代码:Private Sub Command1_Click()init/调用init子程序Timer1.Enabled = True/激活Time1控件Timer2.Enabled = True/激活Time2控件Command1.Visible = FalseLabel5.Caption

37、 = 200Label4.Caption = 0End Sub 5、双击Form1窗口,并选择“KeyPress”对象,输入下面的用代码:Private Sub Form_KeyPress(KeyAscii As Integer)If Chr(KeyAscii) = Label1.Caption Then/校验键盘输入字符和Label1显示的字符initscore = score + 1/得分加1Label4.Caption = scoreEnd IfIf Chr(KeyAscii) = Label6.Caption Then/校验键盘输入字符和Label2显示的字符init1score =

38、score + 1Label4.Caption = score/Label4控件显示得分情况End IfEnd Sub 6、双击Form1窗口,并选择“Load”对象,输入下面的用代码:Private Sub Form_Load()RandomizeTimer1.Enabled = False/Time1控件失效Timer2.Enabled = False/Time2控件失效End Sub 7、双击Timer1控件并输入下列代码:Private Sub Timer1_Timer()Label1.Top = Label1.Top + speedIf Label1.Top Frame1.Heigh

39、t Then/第一个字母超出屏幕范围的时候调用init子程序重新出现一个字母initEnd IfLabel6.Top = Label6.Top + speedIf Label6.Top Frame1.Height Then/第二个字母超出屏幕范围的时候调用init1子程序重新出现一个字母init1End IfEnd Sub 8、双击Timer2控件并输入下列代码:Private Sub Timer2_Timer()Label5.Caption = Val(Label5.Caption) - 1/扣除剩余个数中的一个If Val(Label5.Caption) = 0 ThenTimer1.En

40、abled = False/剩余个数小于等于0的时候结束练习Label1.Caption = /不显示字母Label6.Caption = Select Case scoreCase Is = 80MsgBox vbCrLf + 别放弃,再来一次!/显示信息框Case Is 120MsgBox vbCrLf + 成绩不错,加油!Case Is 180MsgBox vbCrLf + 好厉害!最高分呀!End SelectCommand1.Visible = TrueLabel4.Caption = 0Label5.Caption = 200Timer1.Enabled = FalseTimer2

41、.Enabled = FalseEnd IfEnd Sub 上面就是全部的源代码了,你可以运行试试看。 LOLI:呵呵,想测试我的打字速度?那还不是小菜一碟?大叔:嘿嘿,别说大话,先运行一下再说。怎么样,得了多少分?还小菜一碟吗?LOLI:速度太快了,要是慢一点的话,我肯定能够得高分!大叔:慢一点?慢一点怎么能体现出你的高超技术呢?其实速度可以通过init和init1程序来控制,只要将数值更改的小一些就可以轻轻松松的得到高分了。LOLI:我想到了一个好办法,先把速度降低,然后自己得一个高分,截图保存之后拿给朋友看看,让他们也测试一下,但是给他们的程序就是速度非常快的,这样就可以大大的刺激他们一

42、下了,哈哈哈哈。大叔:整天就想着这些损人不利己的事情,有空还是真正练习一下自己的指法比较好,省得到时候出丑呢!第五天、Flash动画播放器LOLI:叮当大叔,上次你教我做媒体播放器之后不是让我自己做一个Flash动画的播放器吗?但是我始终没有搞定,还是你来帮帮忙吧。大叔:咦,现在怎么变得谦虚起来了?既然是这样,就由我出马搞定吧。一、准备工作大叔:制作Flash动画播放器的时候需要调用一个Flash控件Swflash.ocx,这个控件可以通过安装Flash,或者通过安装Windows 98自带的Flash插件来搞定。比如采取后一种方法,只要在控制面板中选择“添加/删除程序”图标,进入“Windo

43、ws 安装程序”界面之后在“多媒体”一项中点选“Macromedia Shockwave Flash”前的复选框确定即可。LOLI:不用这么麻烦吧,其实我的计算机中已经安装过Flash了,还用它制作过一些动画呢。大叔:切,你不早说?浪费我这么多口水。不过即使已经安装了Flash,也要用鼠标右击工具箱,并在弹出的部件添加窗口中选把Shockwave flash、Microsoft Common Dialog Control 6.0 (SP3)和Microsoft Windows Common Control 6.0 (SP3)这三个控件添加到工具箱中。完成这一步设置后,就可以开始制作Flash动

44、画播放器了。二、制作Flash播放器大叔:咱们制作的这个Flash动画播放器要能够一次打开多个Flash动画文件,可以在播放过程中选择播放打开的文件、随时改变播放质量、画面大小等状态,而且在播放过程中可以随时对播放的当前帧数进行调整或者手动进行逐帧播放,在状态栏里有当前播放状态的相关说明等等。下面先来添加程序所需要的控件。1、新建一个工程,将Form1的Caption属性设置为“大叔的Flash动画播放器”。2、在Form1窗口中添加一个CommonDialog控件,将CommonDialog1控件的CancelError设置为“True”,DialogTitle设置为“打开Flash动画文件

45、”,Filter属性设置为“Flash动画(.swf)|.swf|”,FilterIndex设置为“1”,MaxFileSize设置为“10240”。3、在Form1窗口中添加一个Slider控件,将Slider1的SelectRanger的属性设置为“True”,SmallChange属性和LargeChange属性均设置为“10”,TickFrequengcy属性设置为“20”,TextPosition设置为“1-SldBelowRight”。4、在Form1窗口中添加3个Label控件,并将Label1的Caption设置为“0帧”,Label2和Label3的Caption设置为空字符

46、串。 5、在Form1窗口中添加8个CommandButton控件,将它们的名称属性分别设置为“cmdOpen”、“cmdPlay”、“cmdPause”、“cmdPre”、“cmdPreFrame”、“cmdNextFrame”、“cmdNext”和“cmdExit”,Caption属性分别设置为“打开”、“播放”、“暂停”、“上一个”、“上一帧”、“下一帧”、“下一个”和“退出”。6、在Form1窗口中添加一个Status Bar控件,在这个控件上单击鼠标右键并选择“属性”命令,从弹出的窗口中选择“窗格”标签,用鼠标点击“插入窗格”5次表示插入5个状态窗格,在索引15中分别设置“文本”属性

47、分别为“共打开了0个文件”、“状态:”、“等待”、“帧数:”、“0”。7、接着按下“Ctrl+E”的组合按键进入菜单编辑器,设置第一个菜单标题为“显示控制”,名称为mnuDisplay。在“显示控制”菜单下分别设立“全部显示”、“随窗口大小变化”和“缩放至窗口大小”子菜单标题,名称分别为:mnuDisplay0、mnuDisplay1和mnuDisplay2。设置第二个菜单标题为“质量控制”,名称为mnuQuality。在“质量控制”菜单下分别设立“低分辨率”和“高分辨率”的子菜单,名称分别为mnuQuality0和mnuQuality1。设置第三个菜单标题为“播放控制”,名称为mnuPlay

48、Control。在“播放控制”菜单下分别设立“循环播放”、“放大画面”和“缩小画面”子菜单,名称分别为mnuLoopPlay、mnuZoomIn和mnuZoomOut。8、选择“工程”菜单下的“添加窗体”命令,新增一个窗口Form2作为播放窗口。在Form2上加入1个ShockwaveFlash控件和1个Timer控件,将Timer1控件的Interval属性设置为“20”。最后,对各窗体、控件的大小和位置进行适当的调整,LOLI:乖乖,看来这次是玩真的了,又是控件又是菜单,还有一个播放窗口,厉害。大叔:下面就来针对Form1进行代码添加。1、双击Form1窗口,并选择“通用”对象,输入下面的

49、通用代码:Dim FileNames() As String /用于保存打开的文件名称Dim PlayFileNum As Integer/用于计算正在播放的文件序号Dim TotalFile As Integer/用于统计打开的文件总数 2、双击“打开”按钮并输入下列代码:Private Sub cmdOpen_Click()On Error GoTo ExitOpenCommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNFileMustExist Or cdlOFNExplorerCommonDialog1.FileName = Com

50、monDialog1.ShowOpen/显示“打开”对话框。FileNames() = Split(CommonDialog1.FileName, vbNullChar)/以vbNullChar作为子字符串的边界分隔字符串CommonDialog1返回的FileNameIf UBound(FileNames) = 0 Then/只打开了一个文件Form2!ShockwaveFlash1.Movie = FileNames(0)TotalFile = 1PlayFileNum = 0Else/打开了多于一个文件Form2!ShockwaveFlash1.Movie = FileNames(0)

51、FileNames(1)TotalFile = UBound(FileNames)PlayFileNum = 1End IfStatusBar1.Panels(1).Text = 共打开了 Trim(Str(TotalFile) 个文件cmdPlay_ClickExitOpen:End Sub 3、双击“播放”按钮并输入下列代码:Private Sub cmdPlay_Click()If TotalFile 1 Then Exit Sub /还没有打开文件。Form2.Caption = FileNames(PlayFileNum) 大叔的Flash动画播放器/显示Form2开始播放动画For

52、m2.ShowForm2!ShockwaveFlash1.Playing = TrueIf TotalFile = 1 Then PlayFileNum = 0StatusBar1.Panels(3).Text = 正在播放文件: FileNames(PlayFileNum) /显示状态条的信息Slider1.Max = Form2!ShockwaveFlash1.TotalFrames/显示滑动条的状态Label2.Caption = Str(Slider1.Max / 2) 帧Label3.Caption = Str(Slider1.Max) 帧End Sub 4、双击“暂停”按钮并输入下列代码:Private Sub cmdPause_Click()Form2!ShockwaveFlash1.StopEnd Sub 5、双击“上一个”按钮并输入下列代码:Private Sub cmdPre_Click() If TotalFile 1 Then/打开多个文件时PlayFileNum = PlayFileNum 1If PlayFileNum 1 Then PlayFileNum = TotalFileForm2!ShockwaveFlash1.Movie = FileNames(0) FileNames(PlayFileN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论