ole1.objectverbscount
在大安市等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),外貿(mào)營銷網(wǎng)站建設(shè),大安市網(wǎng)站建設(shè)費(fèi)用合理。
是調(diào)用
ole1
容器內(nèi)項(xiàng)目的個(gè)數(shù)如果
ole1.objectverbs(i)
項(xiàng)目
是
"打開(o)"
命令那么退出這個(gè)函數(shù),估計(jì)就是取
i的值來判斷
那個(gè)
ole1.objectverbs(i)
是打開命令。
OLE 控件(現(xiàn)在稱為ActiveX 控件)OLE(發(fā)音為“oh—Lay”)的全稱是:Object Linking and Embedding(對象鏈接與嵌入)??梢栽?Windows 應(yīng)用程序的對話框中使用,或在萬維網(wǎng)的 HTML 頁中使用。
即為對象的鏈接與嵌入
也可以指把提供嵌入及鏈接對象的應(yīng)用程序,稱為服務(wù)器應(yīng)用程序(Servers),在VB中也稱為"對象應(yīng)用程序"。
把接受嵌入及鏈接對象的應(yīng)用程序,稱為客戶(Clients)應(yīng)用程序,在VB中也稱為"控制應(yīng)用程序"。
名詞解釋:
VB:
Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的語言——不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。
語言特性
VB 的中心思想就是要便于程序員使用,無論是新手或者專家。VB使用了可以簡單建立應(yīng)用程序的 GUI 系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。VB 的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡單的程序。過去的版本里面 VB 程序的性能問題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭論已經(jīng)越來越少。
窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶的動作和修改進(jìn)行改動,這樣就形成了一個(gè)動態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動翻譯或者阻止某些字符的輸入。
VB 的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類似于操作系統(tǒng)的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB 的組件既可以擁有用戶界面,也可以沒有。這樣一來服務(wù)器端程序就可以處理增加的模塊。
VB 使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M件的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,VB 對大小寫不敏感,但是能自動轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號表入口的實(shí)體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對大小寫敏感的,但是可以關(guān)閉這個(gè)功能。
VB 使得大量的外界控件有了自己的生存空間。大量的第三方控件針對 VB 提供。VB 也提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡單。
vb2010(vb.net)貌似已經(jīng)沒有OLE控件
下面的代碼是用PictureBox控件顯示CAD的DWG文件
Private?Structure?BITMAPFILEHEADER
Dim?bfType?As?Short
Dim?bfSize?As?Integer
Dim?bfReserved1?As?Short
Dim?bfReserved2?As?Short
Dim?bfOffBits?As?Integer
End?Structure
Public?Function?GetDwgImage(ByVal?FileName?As?String)?As?Image
If?Not?File.Exists(FileName)?Then?Exit?Function
Dim?DwgF?As?FileStream????'文件流
Dim?PosSentinel?As?Integer??'文件描述塊的位置
Dim?br?As?BinaryReader??'讀取二進(jìn)制文件
Dim?TypePreview?As?Integer?'縮略圖格式
Dim?PosBMP?As?Integer?'縮略圖位置
Dim?LenBMP?As?Integer?'縮略圖大小
Dim?biBitCount?As?Short?'縮略圖比特深度
Dim?biH?As?BITMAPFILEHEADER?'BMP文件頭,DWG文件中不包含位圖文件頭,要自行加上去
Dim?BMPInfo()?As?Byte??'包含在DWG文件中的BMP文件體
Dim?BMPF?As?New?MemoryStream??'保存位圖的內(nèi)存文件流
Dim?bmpr?As?New?BinaryWriter(BMPF)?'寫二進(jìn)制文件類
Dim?myImg?As?Image
Try
DwgF?=?New?FileStream(FileName,?FileMode.Open,?FileAccess.Read)????'文件流
br?=?New?BinaryReader(DwgF)
DwgF.Seek(13,?SeekOrigin.Begin)?'從第十三字節(jié)開始讀取
PosSentinel?=?br.ReadInt32?'第13到17字節(jié)指示縮略圖描述塊的位置
DwgF.Seek(PosSentinel?+?30,?SeekOrigin.Begin)?'將指針移到縮略圖描述塊的第31字節(jié)
TypePreview?=?br.ReadByte?'第31字節(jié)為縮略圖格式信息,2?為BMP格式,3為WMF格式
Select?Case?TypePreview
Case?1
Case?2,?3
PosBMP?=?br.ReadInt32?'DWG文件保存的位圖所在位置
LenBMP?=?br.ReadInt32?'位圖的大小
DwgF.Seek(PosBMP?+?14,?SeekOrigin.Begin)?'移動指針到位圖塊
biBitCount?=?br.ReadInt16?'讀取比特深度
DwgF.Seek(PosBMP,?SeekOrigin.Begin)?'從位圖塊開始處讀取全部位圖內(nèi)容備用
BMPInfo?=?br.ReadBytes(LenBMP)??'不包含文件頭的位圖信息
br.Close()
DwgF.Close()
With?biH??'建立位圖文件頭
.bfType?=?H4D42
If?biBitCount??9?Then?.bfSize?=?54?+?4?*?(2?^?biBitCount)?+?LenBMP?Else?.bfSize?=?54?+?LenBMP
.bfReserved1?=?0?'保留字節(jié)
.bfReserved2?=?0?'保留字節(jié)
.bfOffBits?=?14?+?H28?+?1024?'圖像數(shù)據(jù)偏移
End?With
'以下開始寫入位圖文件頭
bmpr.Write(biH.bfType)?'文件類型
bmpr.Write(biH.bfSize)?'文件大小
bmpr.Write(biH.bfReserved1)?'0
bmpr.Write(biH.bfReserved2)?'0
bmpr.Write(biH.bfOffBits)?'圖像數(shù)據(jù)偏移
bmpr.Write(BMPInfo)?'寫入位圖
BMPF.Seek(0,?SeekOrigin.Begin)?'指針移到文件開始處
myImg?=?Image.FromStream(BMPF)?'創(chuàng)建位圖文件對象
Return?myImg
bmpr.Close()
BMPF.Close()
End?Select
Catch?ex?As?Exception
Return?Nothing
End?Try
End?Function
ole對象實(shí)際上就是別人的程序原封不動的拿來使用??稍?Visual Basic 應(yīng)用程序中添加的最強(qiáng)大、最有用的功能之一就是在控件和控件之間、在控件和其它 Windows 應(yīng)用程序之間拖動文本和圖形。有了 OLE,就可將這種功能引入到應(yīng)用程序中。
使用 OLE 拖放時(shí),并不是把一個(gè)控件拖動到另一個(gè)控件并調(diào)用代碼(象本章前面討論的拖放一樣);而是將數(shù)據(jù)從一個(gè)控件或應(yīng)用程序移動到另一個(gè)控件或應(yīng)用程序。例如,您可以選擇并拖動
Excel 中的一個(gè)單元范圍,然后將它們放到應(yīng)用程序的 DataGrid 控件上。
Visual Basic 的幾乎所有控件都在某種程度上支持 OLE 拖放。此外,一些標(biāo)準(zhǔn)的和 ActiveX 控件(由 Visual Basic 專業(yè)版和企業(yè)版提供的)還提供對 OLE 拖放的自動支持,這意味著控件支持在 OLEDragMode 和 OLEDropMode 屬性中的自動設(shè)置,并且無論是從控件拖出還是在控件內(nèi)放入都不需要編寫代碼。這一點(diǎn)與手動拖放相反,在手動拖放中,您必須為拖放編程:
有些支持自動 OLEDragMode 和 OLEDropMode 的控件包括 PictureBox、Label、以及 TextBox 控件。為對這些控件啟動自動 OLE 拖放,應(yīng)將 OLEDragMode 和 OLEDropMode 都設(shè)置為“自動化”。
有些控件支持自動 OLE 拖動,但只支持手動放下,有些支持自動放下,但只支持手動拖動。例如,ComboBox 控件支持手動和自動拖動,但不支持自動放下。這是由于如果您將一個(gè)項(xiàng)目拖動到 ComboBox 中,Visual Basic 無法知道將新項(xiàng)目放下的確切位置。然而,可以使用手動放下
,這樣您就可以將項(xiàng)目程序化的放在您希望在 ComboBox 中的位置了。要啟動這些控件的自動拖動,應(yīng)將 OLEDragMode 屬性設(shè)置為“自動化”。
有些控件只支持手動 OLE 拖放事件,這意味著可用代碼對它們進(jìn)行編程,使之成為 OLE 拖放操作的源,也可使之成為 OLE 拖放操作的目標(biāo)。
注意 為判斷其它 ActiveX 控件是否支持 OLE 拖放,應(yīng)在 Visual Basic 中加載控件并檢查 OLEDragMode 和 OLEDropMode 屬性是否存在,或檢查 OLEDrag 方法是否存在。(不自動支持 OLE 拖動的控件也將不具有 OLEDragMode 屬性,但是,如果控件通過代碼支持 OLE 拖動,則其具有 OLEDrag 方法。)
注意 窗體、MDI 窗體、文檔對象、用戶控件和屬性頁都包含 OLEDropMode 屬性,而且僅支持手工拖放。