说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB多媒体程序设计

HTML文档下载 WORD文档下载 PDF文档下载
VB多媒体程序设计
作者:余鑫铭
Visual Basic for Windows(以下简称VB)是Windows下的应用程序开发工具,它从根本上改变了传统的程序设计模式,可以处理文本、图像、动画、声音等多媒体数据,因而被计算机界称为“最富有创新精神的编程工具之一”。

本文假定你已基本熟悉VB的编程环境和简单的程序设计方法,介绍VB多媒体编程的一些基本概念和方法,让你也能体验多媒体程序设计的乐趣。如果你还未曾使用过VB(但肯定听说过),那么不妨赶快试一下,它的易用性会使你很快掌握的。
一、Visual Basic编程概述
对于Microsoft Windows的用户来说,很少有其它产品能像VB那样激动人心,其重要原因就是VB是第一个真正能让不熟悉Windows的人编写Windows应用程序设计工具。许多人都认为Windows程序设计非常复杂。其实,这只是针对用C或Pascal语言编写程序的人来说的。VB的出现为我们开辟了一条通向Windows程序设计高手的捷径。

在Windows推出初期,能够用来开发Windows应用软件的工具只有“Microsoft Windows Software Development Kit”,简称SDK。虽然用SDK开发出来的应用软件对于用户来说是相当出色的,但对于程序员来说却是一件困难的事。若使用SDK,程序员必须去编写创建窗口、菜单、字体、对话框以及其它各种对象,即使是编写最简单的程序。因此对于大多数人而言,使用SDK开发软件除了必须具备C语言的经验以外,还要学习SDK提供的600个低层函数,然后方能进行编程,即使对于专业程序员来说,这也是一项十分困难、费时的工作,这种复杂性使得很多有兴趣进行Windows编程的用户望而却步。所以,有些程序员调侃SDK是Super Difficult Kit的缩写,这或许有些夸张,不过也很贴切地道出了使用SDK编程的复杂性。

VB的出现,彻底地打破了SDK塑造的神话。使得以往要使用SDK才得以设计Windows应用软件的“石器时代”已经过去。通过VB,任何人都可以享受Windows程序设计的乐趣。VB的“可视性”和“面向事件”的特征是简化Windows程序开发的关键。简而言之,在VB环境下,程序员可以用图表来开发应用程序,只要用鼠标进行选中或单击操作,就可以从菜单中选中对象、控制项和属性等。它把600个Windows的应用程序编程接口(API)中的大多数功能函数抽取到高层,这样允许程序员直接使用Windows函数,如建立按钮、对话框、菜单等,而无须SDK。程序仍然可以通过一个动态链接库(DDL)来调用底层的Windows API功能函数。

VB的程序设计风格与传统设计方法不同,它是面向对象和事件的程序设计方法。面向对象是近年来出现的程序设计技术,它是一种全新的设计和构造软件的思维方法。在面向对象的程序设计中,“对象”是系统中的基本运行实体。例如窗体和控件,就是VB的对象,VB中的对象是由系统设计好提供给用户使用的。对象建立、移动、增删、缩放操作也是由系统规定好的,这比一般的面向对象程序设计中的操作要简单的多。

VB是采用事件驱动编写机制的语言。传统编程使用的是面向过程、按顺序进行的机制,这种编程方式的缺点是写程序的人总是要关心什么时候发生什么事情。而在事件驱动编程中,程序员只要编写响应用户动作的程序,如选择命令、移动鼠标等,而不必考虑按精确次序执行的每个步骤。当事件由用户触发、或由系统触发,对象就会对该事件作出响应。

如果你掌握了Basic编程,这并不意味着你就会使用VB,因为VB中有许多Baisc中所没有的新概念和新方法。从Basic到VB,最大的概念跳跃是窗口,不是语言本身,以及应用程序开发中的图形化构思,而不是面向代码的构思。

VB在多媒体应用软件开发方面有着良好的前景。目前多媒体制作工具基本上可分为两类,一类是专为开发多媒体节目和电子出版物而设计的所谓多媒体编著工具(authoring tools);另一类是通用的软件开发工具,如Windows下的Visual Basic、Visual C++等。采用通用程序开发工具的优点是灵活性高,软件运行效率高。在需要大数据量处理及查询时常常采用通用程序设计语言,如百科全书类的节目大多是用Visual Basic开发制作的。 之所以选用VB开发多媒体系统,主要是可用专业版中所提供的MCI.VBX(Media Control Interface:媒体控制接口)的控制对象。通过MCI.VBX,就可以用指令控制各种多媒体外部设备并读取各种多媒体系统所需的文件格式。

虽然VB具有以上所述的种种优点,但与其它的一些基于Windows的编译器(如Borland的C++或Turbo Pascal for Windows)相比,后两种语言也有比VB语言出色的地方。

首先,C++和Pascal为我们提供了更多对计算机的控制,可以用来实现对计算机底层功能的控制和调用,因而可用来设计系统软件。例如BELL实验室用C来编写UNIX操作系统,苹果公司用Pascal 编写Macintosh操作系统。而若用VB写操作系统的话,就好比乘热气球登月一样困难。

其次,VB的Custom Control(用户控制对象)概念是近来导入市场非常成功的对象控制技术,但目前VB还无法建立自己的用户对象。

第三,C++和Pascal提供了可移植的交叉平台,像IBM、Macintosh、Amiga,直到VAX小型机和Cray巨型机,都可以运行C++和Pascal程序,而VB目前还只能在MS DOS和Windows下运行。

尽管VB还不是尽善尽美,但瑕不掩玉,随着VB版本的不断升级,我们相信其性能会更加完善。


--------------------------------------------------------------------------------

二、 MCI程序设计初步


设计多媒体程序,关键是对多种媒体设备的控制和使用,在Windows3.1和Windows95系统中,对多媒体设备进行控制主要有三种方法:

第一种方法是使用微软公司窗口系统中对多媒体支持的MCI,即媒体控制接口,MCI是多媒体设备和多媒体应用软件之间进行设备无关的沟通的桥梁。在Visual Basic 3.0和4.0版本中,MCI都得到了很好的支持。

第二种方法,通过调用Windows的API(应用程序接口)多媒体相关函数实现媒体控制。

第三种方法是使用OLE(Object Linking & Embedding),即对象链接与嵌入技术,它为不同软件之间共享数据和资源提供了有力的手段。



下面分别介绍如何利用这三种方法进行多媒体程序设计,首先介绍MCI的有关概念及MCI.VBX控件的使用。

1.什么是MCI

MCI(Multimedia Control Interface)是微软Windows定义的多媒体接口标准,MCI 接口包括了CDAudio(激光唱机)、Scanner(图像扫描仪)、VCR(磁带录像机)、Videodisc(激光视盘机)、DAT(数字化磁带音频播放机)、DigitalVideo(窗口中的数字视频)、Overlay(窗口中的模拟视频叠加设备)、MMMovie(多媒体影片演播器)、Sequencer(MIDI音序设备)、WaveAudio(波形音频设备)、Other(未定义的MCI设备)等多媒体的主要产品,支持环境是Windows 3.1及Windows 95版本。MCI的最大优点是应用系统与设备无关性,对于标准多媒体设备,安装相应的Windows的MCI Driver,Windows即可对该设备进行操作访问;对于非标准的多媒体设备,只要有厂家提供所配的MCI Driver也一样可以操作。由于MCI与设备的无关性,程序员在多媒体应用系统的开发中,无需了解每种产品细节,就能开发出通用的多媒体应用系统。那么在VB中如何使用MCI呢?它是通过VB控件提供的功能来实现的。

2.VB的控件

VB中附有许多具有特定功能的控件(Controller),而每个控件都可以创造具有特定用途及功能的对象。要想利用VB进行多媒体程序设计,必须熟悉和掌握这些控制的作用和功能。在VB中,大部分的控件均放在工具箱中,每个控件由工具箱中的一个工具图标来表示。

工具箱中的工具分为两类,一类是VB本身固有的,一类是扩充的。由固有的工具组成的工具箱称为标准工具箱,工具箱可以扩充,以便把更多的工具包含进来。为在工具箱中增加一个扩展控件,必须装入相应的控件支持文件,其文件的扩展名为.VBX。当某个扩展控件增加后,该文件的名字就出现在项目窗口中。项目窗口中的.VBX文件只与扩展控件相对应,标准控件没有与之对应的.VBX文件。

3.MCI.VBX的使用

MCI.VBX是在VB专业版中所提供的一个控制对象。VB借助于此控件的配合来达到控制多媒体设备的目的,是用户对多媒体对象进行控制的一种最简单、最容易的方法。一般在安装完VB专业版时,会将这个控制对象拷贝到Windows下的System子目录里。在使用MCI.VBX 之前,应首先安装并设置好多媒体的系统环境。

当我们进入VB3.0时,ToolBox(工具箱)中并不会直接出现MCI.VBX的图标。这是因为AUTOLOAD.MAK这个“自动载入”文件没有将其包含进来。在VB的目录中找到这个文件,然后用Windows的书写器进行编辑,将“MCI.VBX”加在AUTOLOAD.MAK文件的未尾。也可以选择[File]菜单下的[Add File]选项,将Windows\System 子目录下的MCI.VBX加进ToolBox后,才能在VB中控制多媒体外部设备。将MCI.VBX加入到ToolBox之后,你就可以看到ToolBox尾部已经增加了一个图标。

4.MCI.VBX的控制按钮

如同使用其它控制对象一样,首先以鼠标双击ToolBox(工具盒)的MCI图标或拖至Form(窗体)上, 并调整好Form的大小,这时我们可以看到,在窗体上(Form)上出现了九个按钮,这就是多媒体控制对象的外观。

MCI控制按钮定义如下:Prev(移前标)、Next(移后标)、Play(播放)、Pause(暂停)、 Back(倒移)、Step(前移)、Stop(停播)、Record(录制) 和 Ejec(退出)。使用MCI控件方法如下。

(1)MCI控件在设计或运行时可以是可见或隐藏的;其按钮功能也可以通过单击鼠标Click事件重新定义。

(2)需要使用MCI按钮功能时,必须将该按钮的属性(Visible和Enabled)置为True ;若不需要该按钮时,必须设计Visible为False;若使该按钮功能当前无效时,设计Visible为True,Enabled为False。

(3)MCI 扩充版支持一个视窗控制多个MCI 设备。

5.初试MCI.VBX

在MCI.VBX的支持下,我们对多媒体设备的控制过程简单得令人难以置信,下面我们先创建一个CD音乐播放程序来体验一下。

在Form_Load()事件过程中加上下面两行代码:

MMControl1.DeviceType=“CDAudio”

MMControl1.Command=“Open”

另外,我们在Form_unload事件过程中,加上一行代码:

MMControl1.Command=“Close”

ADO三大对象的属性、方法、事件及常数(三)-VB资料 ADO三大对象的属性、方法、事件及常数(一)-VB资料 Data 控件使用有密码的 Access 数据库 -VB资料 Excel、Access、VB的结合应用 Microsoft SQL Server 7.0安装问题(二)-VB资料 主题: MDB文件的导出 使用 DAO-VB资料 Microsoft Access秘密、技巧和陷阱-VB资料 SQL的基本操作(1.数据类型) -VB资料 SQL的基本操作(2.数据库的相关操作)-VB资料 SQL的基本操作(3.表的相关操作) -VB资料 SQL的基本操作(4.数据的检索)-VB资料 SQL在VB中的使用及访问远程数据库 Text 转换为 Access MDB -VB资料 VB5.0数据库基础 非编程方式访问数据库-VB资料 VB用编程方式访问数据库 VB 5.0数据库设计技术讲座(4) VB5.0数据库编程经验小集 VB5在处理数据库时的几个“BUG” VB6.0中的几个新增数据库工具 VB处理数据库时求数据表记录总数的最佳方法 VB访问数据库的方案比较 VB数据库编程经验两则 VB数据库编空字段的处理 VB数据库多字段记录的录入 VB数据库记录查询四法 vb应用程序访问sql server方法探讨 VB中超长OLE数据库字段的操纵方法 VB中将数据转换为数据库文件 VB中远程数据库的访问 Visual Basic 的数据库编程 无法为更新行集定位:一些值可能已在最后读取后改变--怎么解决 sql server ce问题 气死我了,本姑娘以后再也不来PHP版回答问题了 activeReport 问题 有没有非教育网下载visualage for java 4.0 请教:怎样记录浏览器访问过的地址? ChinaRen实在是太差了!!!!我讨厌ChinaRen!!! 偶觉得湘妹子既可以是红粉知己,也可以是居家老婆,一句话:人生何所求,得一湘妹子足矣! 怎样通过程序设置使浏览器不出现工具条和minibox,maxbox 如何修改注册表来删除ie中的查看》浏览栏按钮? 关于函数指针的问题,欢迎讨论. 还是没有解决的问题:关于VFP报表打印的问题—急急急! moden是否有物理地址 如何用Delphi或C++Builder代码实现一个程序关闭另处一个应用程序。 请各位推荐几本好一点的JAVA参考书,THANKS 这样的代码为什么不能连接SQL SERVER数据库 当二个进程运行时,几就是两次运行FTP 动画关闭窗体API的问题 什么叫串行端口,什么叫并行端口? 程序员级考试就是中级考试吧 各位高手:请问*.html和*.htm文件有何区别? 在活动目录中如何实现组的嵌套? swing窗口布局的问题 毕设还要翻译6000子科技文献,谁介绍一篇呀! 介绍几个考中级的网址来噶 CNET网站重新架构,我们的链接也要改了~~ 急,真的急 各位,有谁能告诉我怎样使得程序中每个Show的窗体都以新窗体出现在任务栏。(答对了一定加分!!!!) 能不能获得来访者的计算机名 help me!高手请看! 11号帖子,救命呀,很急,很重要! 怎样在恢复一个被删除的文件时恢复文件全名? 我急!深夜提问!大家看一看 有谁告诉我Microsoft Visual InterDev 6.0如何使用其中的站点管理 如何在Word工具条上加一个按钮 请问系统和上网的速度有关系吗 急需foxpro for win版,哪有??? 请教一下,ado.net里如何返回表里的行数? 如何在HTML页面中使用 Acrobat 的 PDF 阅读器控件 关于一个遗传算法得问题!! 请问一个TSR问题! 关于跨数据库查询的问题 请问在ListBox中可不可以将每一行字符串设置成不同的颜色? vb6.0中如何将dbgrid里的内容添加到数据库里? 请问怎样才能将窗体上的最大化按钮设置成无用,而保留最小化按钮? 各位专家:请问win2000 PRO 下的config.msi目录中的好多以rbf为扩展名的文件是什么文件?有什么用?可以删除吗? ASP.NET中DATAGRILD的烦人处 新手问两个简单的问题??? 想知道如何才能看见前页纸油笔写过后留下的字迹?(散分) 为什么用odbc连接的paradox表不能编辑? 哪位大侠帮看一下代码(关于链表),为何出"invalid type argument of `->'"的错 三角形ABC三条角平分线相交于点O,过点O作OE⊥BC垂足为点E,试探究:∠BOD与∠COE的数量关系this abcd是不同的质数,a+b+c=d,那么abcd相乘的最小的值是多少?请尽量用算术方法做,快来做吧. 有一个等腰直角三角形,它的最长边边长为6厘米,这个三角形的面积是多少平方厘米? 绝对值a分之a加绝对值b分之b(ab不等于0)的所有可能的值有几个 已知abcd都是质数,且a+130=b+95=c+91=d+79.求着三个质数. 二元函数极限,9题2和3 一个锐角三角形ABC的三条角平分线交与O点,过O作OE垂直BC于E,AD平分∠BAC交BC于点D 求证;∠BOD=∠COE 求EOC+OCE=90BAC+ACB+ABC=180 都除以2既是OBA+BAO+OCE=90而BOD=OBA+BAO得证擦 自己想起来了 快10年没碰了 △ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直AD于Q,PQ=3,PE=1 求证:AD=BE 若∠PBQ=30°,求AD的△ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直AD于Q,PQ=3,PE=1 (1)求证:AD=BE (2)若∠PBQ=30°,求AD的长 有甲乙丙三种产品,如果买甲3件,乙2件,丙1件共需315元,如果购买甲1件,乙1件,丙3件共要285元有甲乙丙三种产品,如果买甲3件,乙2件,丙1件共需315元如果购买甲1件,乙1件,丙3件共要285元,那么购买甲 一个锐角三角形ABC的三条角平分线交与O点,过O作OE垂直BC于E,AD平分∠BAC交BC于点D 求证;求∠BOD=∠COE 如图,△ABC为等边三角形,AE=CD,AD、BE相交于点P,BQ⊥AD于Q,PQ=3,PE=1,∠PBQ=30°,求AD长 一个等腰直角三角形,最长的边为12厘米,求这个三角形的面积是多少平方厘米? 有甲乙丙三种商品,某人若买甲3件,乙7件,丙1件,共24元,若买甲4件,乙10件,丙1件共要33元则此人购买甲乙丙各一件要多少元? 1/a+a/b+5=1/9 b=?(a不等于0) 甲乙丙3种商品,如果购甲3件乙2件丙1件需315元,购甲1件乙2件丙3件需285元.购甲乙丙商品各一件共需多少? 若AB不等于0,则A分之A的绝对值+B的绝对值分之B的值不可能为 (-0.9)+(-2.7)等于多少 有甲乙丙三种商品,如果购甲三件 乙两件 丙一件需315元 购甲一件 乙两件 丙三件需285元 购各一件需多少元 当a不等于0,b不等于0,ab等于ab的绝对值成立的条件是什么?急.sos啊 如图△ABC是等边三角形AE=CD,BQ⊥AD于Q,BE交AD于P.BQ⊥AD于Q,连PC,若BP⊥PC,求AP/PQ的值 已知a,b,c都是质数,且满足abc+a=85l,则a+b+c的值为 函数极限定义如何理解极限的局部保号性 如图在三角形ABC中,AD,BE,CF分别是各边的中线,已知三角形BOD的面积为20平方厘米,试求三角形ABC的面积 如图已知△ABC是等腰三角形,AE=CD,AD,BE相交于点P,BQ垂直QD于点Q,猜想BP于PQ的关系,并证明此结论. 如果a+b=0(a,b不等于0),那么|b|/a + |a|/b= 一个两位数十位数字比个位数字大3,如果将它十位数字与个为数字对调,所得到新的两位数比原两位数的一半还多10.求这个两位数! 如图,在等边△ABC中,AE=CD,AD,BE相交于P 点,BQ⊥AD于Q.连PC,若BP⊥PC,求AP/PQ的值. 如果a+b=0,且a不等于0,那么()b分之a大于0b分之a=0b分之a=1b分之a=-1 有甲乙丙三种商品,如果购甲3件乙7见丙1件共需580元 甲4件乙10件丙1件共需630元够甲乙丙各一件多少元 已知三角形ABC,角A(0,7),角B平分线方程X-2Y+4=0,角C平分线方程4X+5Y+6=0,求BC直线方程.求简便方法 a、b、c都是质数,且a+b=33,b+c=44,c+d=66,那么d是多少? 一个两位数,个位上的数字比十位上的数字的2倍大3,如果把个位上的数字与十位上的数字对调,则所得两位数一个两位数,个位上的数字比十位上的数字的2倍大3,如果把个位上的数字与十位上 在三角形ABC中,角C等于角A+角B,那么这个三角形一定是() 如果a>0,b 如图所示,△ABC为等边三角形,AE=CD,AD,BE相交于点P,BP⊥AD于Q,PQ=3,PE=1,求AD的长 1.2除7分之6等于多少 已知2次函数的图像的顶点坐标为(3,-2)且与y轴交于(0,2/5)1)求这个2次函数的解析式2)求函数的最值3)当x取何值是y大于0 D,E是等边三角形ABC两边上的两个点,且AE=CD,连接BE,AD交点P,过点B作BQ垂直于AD于Q,求证BP:PQ=2 A的6分之1等于B的7分之1(A,B均大于0),则A比B小对还是错 已经知道2次函数y=x^2+4-2mx的图像顶点A在x的负半轴之上,与y轴交与点B 求抛物线的解析式 如图所示,在等边△ABC中,DC=AE,AD、BE交于点P,BQ⊥AD于Q,试探讨BP与PQ之间有什么数量关系,说出理由 7分之6等于几分之1加几分之1加几分之1加几分之1 已知2次函数的顶点坐标是(1.4)又图像过点(-1.0),求这个函数解析式 甲乙丙三种货物如果购买甲3件乙7件丙1件共花4.50元,如果购买甲4件乙8件丙2件共花7.80元 那么购买甲乙丙各1件多少钱 若(a-b):(a+b)=3:7则a:b等于 在三角形abc中,角b等于角c,且其中一个外角是60°则角a为多少度?角b为多少度? 如图,△ABC为等边三角形,AE=CD,AD、BE相交与点P,BQ垂直于AP与Q,PQ=3,PE=1,求AD的长. 第二题,二元函数极限 a、b、c是三个不同的质数,且a b=33,b c=34,c d=66,求a. 甲5件乙2件丙4件花80元,甲3件乙6件丙4件花144元,问甲乙丙各一件花多少元 二元函数的极限问题请问大家最后是怎么推导出极限为∞的?为什么当y从趋向于x 和-x时候的极限都为0就知道函数的极限为∞?不是说当f(x,y)从哪个方向趋向于A时f(x,y)就趋向于A那应该函数的极 如图所示·,三角形ABC的三条角平分线相交于O点,过O点做OE垂直于BC于E,求证:∠BOD=∠COE 如图所示,△ABC为等腰三角形,AE=CD,AD,BE相交于点P,BQ⊥AD于Q,PQ=3,PE=1,求AD的长快回答 求二元函数的极限问题如果要证明有极限存在是不是还要用ε-r定理?让r=(x^2+y^2)开根号.是不是求极限的题目一般只要尝试y=kx或=kx^2就可以知结果了?以下为正题~1、____________√x^2 * y^2 +1 — 1— 在三角形ABC中,角A与角B的外角的和等于276 度,那么角C=( ) △ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直于AD与Q,PQ=4,PE=1求证∠BPQ=60° 如何求这两个二元函数极限 在三角形ABC中,三个角的角平分线交于点O,OE垂直于BC于点E,求证角BOD等于角COE如题D是角A的角平分线交BC的交点 一个等腰直角三角形的直角边场长2.4dm,它的面积是多少平方分米? 由甲乙丙三种货物,若购甲3件,乙7件,丙1件共需20元;若购甲4件,乙10件,丙1件共需27元;若甲乙丙三种货物各买一件需要是多少元?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘