自VB4.0之后,OLE技術(shù)在VB中得到了越來越廣泛的支持,目前流行的ActiveX技術(shù)的核心也是OLE 。OLE技術(shù)可以滿足用戶在一個(gè)文檔中加入不同格式數(shù)據(jù)的需要(如文本、圖像、聲音等),即所謂建立復(fù)合文檔問題。我們在Word文檔中嵌入Excel表格,當(dāng)用鼠標(biāo)雙擊電子表格時(shí),Word的菜單、工具條都變?yōu)镋xcel的菜單、工具條,這是OLE技術(shù)的使用;在WIN95下,我們可以將一個(gè)數(shù)據(jù)對象用鼠標(biāo)拖動(dòng)到另一個(gè)軟件的文檔中,這也是OLE技術(shù)的使用。
1993年Microsoft公司發(fā)布了OLE2.0規(guī)范,OLE2.0是由多層模型構(gòu)成的(見圖1),底層服務(wù)(COM)由操作系統(tǒng)管理,對于VB程序員是屏蔽不可見的,VB程序設(shè)計(jì)者使用最多的是中間一層。
VB中經(jīng)常用到的有OLE可視化編輯、復(fù)合文檔、拖動(dòng)、剪貼板和OLE自動(dòng)化等服務(wù)。OLE有4種基本的應(yīng)用:對象鏈接(Object Link)、對象嵌入(Object Embed)、OLE自動(dòng)化(OLE automation)和OLE控件。
·OLE對象是指由支持OLE技術(shù)的應(yīng)用程序(OLE服務(wù)器)可提供的數(shù)據(jù)。
·對象鏈接是指在OLE對象和VB中支持OLE控件之間建立一個(gè)鏈,并未將OLE數(shù)據(jù)復(fù)制過來。這是一種動(dòng)態(tài)聯(lián)系。
·對象嵌入是指將OLE對象復(fù)制到VB當(dāng)前程序中,即在OLE控件內(nèi)部保存數(shù)據(jù)。
·OLE自動(dòng)化使得VB程序使用另外程序的功能,如用Word的拼寫器程序檢查當(dāng)前程序的文本框中文本的拼寫錯(cuò)誤而不必再費(fèi)力編寫相同功能的程序。
自4.0版后,VB中的控件庫VBX(Visual Basic Extension )已經(jīng)由OCX(OLE Control Extension )所代替,即所謂的OLE控件。例如VB的窗體就能起到OLE 包容器的作用,通過處理窗體的OLEDragOver和OLEDragDrop事件過程,可將圖形、工作表、聲音等OLE對象直接拖放到窗體中,有了這種技術(shù)的支持,VB的程序員就可以在自己的程序中使用各種應(yīng)用程序功能的接口,并將它們集成顯示在窗口中。我們還可使用VB中的OLE控件,通過加入此控件,適當(dāng)改變該控件的屬性,就可用一些VB中支持OLE的方法在程序中方便地建立鏈接式或嵌入式OLE對象,如可用方法:
·CreateEmbed:創(chuàng)建嵌入式的OLE對象;
·CreateLink:創(chuàng)建鏈接式OLE對象。
使用這種方法有很多的優(yōu)點(diǎn),如可在程序運(yùn)行動(dòng)態(tài)建立或修改OLE對象;鼠標(biāo)雙擊OLE對象后出現(xiàn)可編輯OLE對象數(shù)據(jù)的菜單和工具欄(見圖2)。還可將多個(gè)OLE對象保存到一個(gè)文件中等。
圖1
VB5.0中可使用ActiveX Control Interface Wizard功能,創(chuàng)建新的OCX控件,且開發(fā)的OCX控件可在VB、VC++、VFP、MS Office97中使用。
(出處:編程街)
聯(lián)系客服