一、Visual Basic編程概述對于Microsoft Windows的用戶來說,很少有其它產(chǎn)品能像VB那樣激動人心,其重要原因就是VB是第一個真正能讓不熟悉Windows的人編寫Windows應(yīng)用程序設(shè)計工具。許多人都認為Windows程序設(shè)計非常復(fù)雜。其實,這只是針對用C或Pascal語言編寫程序的人來說的。VB的出現(xiàn)為我們開辟了一條通向Windows程序設(shè)計高手的捷徑。
在Windows推出初期,能夠用來開發(fā)Windows應(yīng)用軟件的工具只有“Microsoft Windows Software Development Kit”,簡稱SDK。雖然用SDK開發(fā)出來的應(yīng)用軟件對于用戶來說是相當出色的,但對于程序員來說卻是一件困難的事。若使用SDK,程序員必須去編寫創(chuàng)建窗口、菜單、字體、對話框以及其它各種對象,即使是編寫最簡單的程序。因此對于大多數(shù)人而言,使用SDK開發(fā)軟件除了必須具備C語言的經(jīng)驗以外,還要學(xué)習(xí)SDK提供的600個低層函數(shù),然后方能進行編程,即使對于專業(yè)程序員來說,這也是一項十分困難、費時的工作,這種復(fù)雜性使得很多有興趣進行Windows編程的用戶望而卻步。所以,有些程序員調(diào)侃SDK是Super Difficult Kit的縮寫,這或許有些夸張,不過也很貼切地道出了使用SDK編程的復(fù)雜性。
VB的出現(xiàn),徹底地打破了SDK塑造的神話。使得以往要使用SDK才得以設(shè)計Windows應(yīng)用軟件的“石器時代”已經(jīng)過去。通過VB,任何人都可以享受Windows程序設(shè)計的樂趣。VB的“可視性”和“面向事件”的特征是簡化Windows程序開發(fā)的關(guān)鍵。簡而言之,在VB環(huán)境下,程序員可以用圖表來開發(fā)應(yīng)用程序,只要用鼠標進行選中或單擊操作,就可以從菜單中選中對象、控制項和屬性等。它把600個Windows的應(yīng)用程序編程接口(API)中的大多數(shù)功能函數(shù)抽取到高層,這樣允許程序員直接使用Windows函數(shù),如建立按鈕、對話框、菜單等,而無須SDK。程序仍然可以通過一個動態(tài)鏈接庫(DDL)來調(diào)用底層的Windows API功能函數(shù)。
VB的程序設(shè)計風(fēng)格與傳統(tǒng)設(shè)計 ú煌?,它是面向俄嶓和输淊的辰{蟶杓品椒?。面向俄嶓蕢年狸J魷值某絳蟶杓萍際?,它是一种全新导{杓坪凸乖烊砑乃嘉椒?。哉嗘向俄嶓的辰{蟶杓浦?,“俄嶓」P竅低持械幕駒誦惺堤?。例如窗体和控件,就是VB的對象,VB中的對象是由系統(tǒng)設(shè)計好提供給用戶使用的。對象建立、移動、增刪、縮放操作也是由系統(tǒng)規(guī)定好的,這比一般的面向?qū)ο蟪绦蛟O(shè)計中的操作要簡單的多。
VB是采用事件驅(qū)動編寫機制的語言。傳統(tǒng)編程使用的是面向過程、按順序進行的機制,這種編程方式的缺點是寫程序的人總是要關(guān)心什么時候發(fā)生什么事情。而在事件驅(qū)動編程中,程序員只要編寫響應(yīng)用戶動作的程序,如選擇命令、移動鼠標等,而不必考慮按精確次序執(zhí)行的每個步驟。當事件由用戶觸發(fā)、或由系統(tǒng)觸發(fā),對象就會對該事件作出響應(yīng)。
如果你掌握了Basic編程,這并不意味著你就會使用VB,因為VB中有許多Baisc中所沒有的新概念和新方法。從Basic到VB,最大的概念跳躍是窗口,不是語言本身,以及應(yīng)用程序開發(fā)中的圖形化構(gòu)思,而不是面向代碼的構(gòu)思。
VB在多媒體應(yīng)用軟件開發(fā)方面有著良好的前景。目前多媒體制作工具基本上可分為兩類,一類是專為開發(fā)多媒體節(jié)目和電子出版物而設(shè)計的所謂多媒體編著工具(authoring tools);另一類是通用的軟件開發(fā)工具,如Windows下的Visual Basic、Visual C++等。采用通用程序開發(fā)工具的優(yōu)點是靈活性高,軟件運行效率高。在需要大數(shù)據(jù)量處理及查詢時常常采用通用程序設(shè)計語言,如百科全書類的節(jié)目大多是用Visual Basic開發(fā)制作的。之所以選用VB開發(fā)多媒體系統(tǒng),主要是可用專業(yè)版中所提供的MCI.VBX(Media Control Interface:媒體控制接口)的控制對象。通過MCI.VBX,就可以用指令控制各種多媒體外部設(shè)備并讀取各種多媒體系統(tǒng)所需的文件格式。
雖然VB具有以上所述的種種優(yōu)點,但與其它的一些基于Windows的編譯器(如Borland的C++或Turbo Pascal for Windows)相比,后兩種語言也有比VB語言出色的地方。
首先,C++和Pascal為我們提供了更多對計算機的控制,可以用來實現(xiàn)對計算機底層功能的控制和調(diào)用,因而可用來設(shè)計系統(tǒng)軟件。例如BELL實驗室用C來編寫UNIX操作系統(tǒng),蘋果公司用Pascal編寫Macintosh操作系統(tǒng)。而若用VB寫操作系統(tǒng)的話,就好比乘熱氣球登月一樣困難。
其次,VB的Custom Control(用戶控制對象)概念是近來導(dǎo)入市場非常成功的對象控制技術(shù),但目前VB還無法建立自己的用戶對象。
第三,C++和Pascal提供了可移植的交叉平臺,像IBM、Macintosh、Amiga,直到VAX小型機和Cray巨型機,都可以運行C++和Pascal程序,而VB目前還只能在MS DOS和Windows下運行。
盡管VB還不是盡善盡美,但瑕不掩玉,隨著VB版本的不斷升級,我們相信其性能會更加完善。
------------------------------------------------------
二、MCI程序設(shè)計初步
設(shè)計多媒體程序,關(guān)鍵是對多種媒體設(shè)備的控制和使用,在Windows3.1和Windows95系統(tǒng)中,對多媒體設(shè)備進行控制主要有三種方法:
第一種方法是使用微軟公司窗口系統(tǒng)中對多媒體支持的MCI,即媒體控制接口,MCI是多媒體設(shè)備和多媒體應(yīng)用軟件之間進行設(shè)備無關(guān)的溝通的橋梁。在Visual Basic 3.0和4.0版本中,MCI都得到了很好的支持。
第二種方法,通過調(diào)用Windows的API(應(yīng)用程序接口)多媒體相關(guān)函數(shù)實現(xiàn)媒體控制。
第三種方法是使用OLE(Object Linking&Embedding),即對象鏈接與嵌入技術(shù),它為不同軟件之間共享數(shù)據(jù)和資源提供了有力的手段。
下面分別介紹如何利用這三種方法進行多媒體程序設(shè)計,首先介紹MCI的有關(guān)概念及MCI.VBX控件的使用。
1.什么是MCIMCI(Multimedia Control Interface)是微軟Windows定義的多媒體接口標準,MCI接口包括了CDAudio(激光唱機)、Scanner(圖像掃描儀)、VCR(磁帶錄像機)、Videodisc(激光視盤機)、DAT(數(shù)字化磁帶音頻播放機)、DigitalVideo(窗口中的數(shù)字視頻)、Overlay(窗口中的模擬視頻疊加設(shè)備)、MMMovie(多媒體影片演播器)、Sequencer(MIDI音序設(shè)備)、WaveAudio(波形音頻設(shè)備)、Other(未定義的MCI設(shè)備)等多媒體的主要產(chǎn)品,支持環(huán)境是Windows 3.1及Windows 95版本。MCI的最大優(yōu)點是應(yīng)用系統(tǒng)與設(shè)備無關(guān)性,對于標準多媒體設(shè)備,安裝相應(yīng)的Windows的MCI Driver,Windows即可對該設(shè)備進行操作訪問;對于非標準的多媒體設(shè)備,只要有廠家提供所配的MCI Driver也一樣可以操作。由于MCI與設(shè)備的無關(guān)性,程序員在多媒體應(yīng)用系統(tǒng)的開發(fā)中,無需了解每種產(chǎn)品細節(jié),就能開發(fā)出通用的多媒體應(yīng)用系統(tǒng)。那么在VB中如何使用MCI呢?它是通過VB控件提供的功能來實現(xiàn)的。
2.VB的控件VB中附有許多具有特定功能的控件(Controller),而每個控件都可以創(chuàng)造具有特定用途及功能的對象。要想利用VB進行多媒體程序設(shè)計,必須熟悉和掌握這些控制的作用和功能。在VB中,大部分的控件均放在工具箱中,每個控件由工具箱中的一個工具圖標來表示。
工具箱中的工具分為兩類,一類是VB本身固有的,一類是擴充的。由固有的工具組成的工具箱稱為標準工具箱,工具箱可以擴充,以便把更多的工具包含進來。為在工具箱中增加一個擴展控件,必須裝入相應(yīng)的控件支持文件,其文件的擴展名為.VBX。當某個擴展控件增加后,該文件的名字就出現(xiàn)在項目窗口中。項目窗口中的.VBX文件只與擴展控件相對應(yīng),標準控件沒有與之對應(yīng)的.VBX文件。
3.MCI.VBX的使用MCI.VBX是在VB專業(yè)版中所提供的一個控制對象。VB借助于此控件的配合來達到控制多媒體設(shè)備的目的,是用戶對多媒體對象進行控制的一種最簡單、最容易的方法。一般在安裝完VB專業(yè)版時,會將這個控制對象拷貝到Windows下的System子目錄里。在使用MCI.VBX之前,應(yīng)首先安裝并設(shè)置好多媒體的系統(tǒng)環(huán)境。
當我們進入VB3.0時,ToolBox(工具箱)中并不會直接出現(xiàn)MCI.VBX的圖標。這是因為AUTOLOAD.MAK這個“自動載入”文件沒有將其包含進來。在VB的目錄中找到這個文件,然后用Windows的書寫器進行編輯,將“MCI.VBX”加在AUTOLOAD.MAK文件的未尾。也可以選擇[File]菜單下的[Add File]選項,將Windows\System子目錄下的MCI.VBX加進ToolBox后,才能在VB中控制多媒體外部設(shè)備。將MCI.VBX加入到ToolBox之后,你就可以看到ToolBox尾部已經(jīng)增加了一個圖標。
4.MCI.VBX的控制按鈕如同使用其它控制對象一樣,首先以鼠標雙擊ToolBox(工具盒)的MCI圖標或拖至Form(窗體)上,并調(diào)整好Form的大小,這時我們可以看到,在窗體上(Form)上出現(xiàn)了九個按鈕,這就是多媒體控制對象的外觀。
MCI控制按鈕定義如下:Prev(移前標)、Next(移后標)、Play(播放)、Pause(暫停)、Back(倒移)、Step(前移)、Stop(停播)、Record(錄制)和Ejec(退出)。使用MCI控件方法如下。
(1)MCI控件在設(shè)計或運行時可以是可見或隱藏的;其按鈕功能也可以通過單擊鼠標Click事件重新定義。
(2)需要使用MCI按鈕功能時,必須將該按鈕的屬性(Visible和Enabled)置為True ;若不需要該按鈕時,必須設(shè)計Visible為False;若使該按鈕功能當前無效時,設(shè)計Visible為True,Enabled為False。
(3)MCI擴充版支持一個視窗控制多個MCI設(shè)備。
5.初試MCI.VBX在MCI.VBX的支持下,我們對多媒體設(shè)備的控制過程簡單得令人難以置信,下面我們先創(chuàng)建一個CD音樂播放程序來體驗一下。
在Form_Load()事件過程中加上下面兩行代碼:
MMControl1.DeviceType=“CDAudio”MMControl1.Command=“Open”另外,我們在Form_unload事件過程中,加上一行代碼:
MMControl1.Command=“Close”