Visual Basic的類對於物件導向的支援 (轉)
VB最為人垢病的是它的面向特性。實際上VB是一種基於物件的開發工具。在VB中
建立的類是支援繼承的。下面是範例:
首先建立一個新工程,然後新增一個新的類模組(Class Module),類名稱設定為BaseClass。
然後在BaseClass中加入以下程式碼:
Public Sub BaseSub() '虛擬特性,BaseSub在子類中實現
End Sub
然後新增兩個類模組,類名稱分別設定為ImpClass以及ImpClass2,然後在類的程式碼視窗中寫入:
Implements BaseClass '繼承特性
上面這行程式碼說明類ImpClass以及ImpClass2實現類BaseClass。
在ImpClass視窗中加入以下程式碼:
Private Sub BaseClass_BaseSub() '實現基類中的BaseSub方法
MsgBox "Hello. This is Imp. inherited from BaseClass"
End Sub
在ImpClass2中加入以下程式碼:
Private Sub BaseClass_BaseSub()
MsgBox "Hello. This is Imp2. inherited from BaseClass"
End Sub
完成了上面的類程式碼後,開啟Form1,在上面新增一個Commanutton,在按鈕的Click事件中
寫入以下程式碼:
Dim xImp As New ImpClass
Dim xIMp2 As New ImpClass2
Dim xBase As BaseClass
Set xBase = xImp '多型特性
xBase.BaseSub
Set xBase = xIMp2
xBase.BaseSub
Set xBase = Nothing
Set xImp = Nothing
Set xIMp2 = Nothing
執行,點選CommandButton,程式會先後彈出訊息框,顯示在ImpClass以及ImpClass2中
設定的訊息。
從上面的程式碼中可以看到VB中是如何實現物件導向的特性:繼承、虛擬以及多型的。只是同
諸如、C++、 Pascal不同,VB將很多實現的細節隱藏了起來。
問:如何遮蔽掉窗體中的關閉按鈕X?
答:可以使用將窗體選單中的 關閉 項灰掉,因為選單同關閉按鈕是關聯的,這樣關閉
按鈕也會不可用。具體程式碼如下:
Option Explicit
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Private Declare Function EnableMenuItem Lib "user32" _
(ByVal hMenu As Long, ByVal wnableItem As Long, _
ByVal wEnable As Long) As Long
Const SC_CLOSE = &HF060
Private Sub Form_Load()
Dim hMenu As Long
hMenu = GetSystemMenu(Me.hwnd, 0)
RemoveMenu hMenu, &HF060, &H200&
De.Print EnableMenuItem(hMenu, SC_CLOSE, 1)
End Sub
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993785/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式導向和麵向物件的對比(轉)物件
- 談談我對物件導向以及類與物件的理解物件
- 物件導向 -- 類的組合物件
- python-程式導向、物件導向、類Python物件
- Java物件導向——類與物件Java物件
- 物件導向的基本理論1:類和物件物件
- PHP中物件導向的分頁類PHP物件
- 10 Python物件導向程式設計:類和物件以及和Java的對比Python物件程式設計Java
- JAVA物件導向--抽象類Java物件抽象
- python物件導向思想(類與物件)Python物件
- python中物件導向_類_物件的概念與定義Python物件
- 說下你對物件導向的理解物件
- Python如何設計物件導向的類(下)Python物件
- Python如何設計物件導向的類(上)Python物件
- 不止於物件導向的SOLID原則物件Solid
- 物件導向 -- 類的載入順序 類和物件的名稱空間物件
- JS的物件導向(理解物件,原型,原型鏈,繼承,類)JS物件原型繼承
- 物件導向中類和物件的定義是什麼?物件
- PHP 物件導向 (十一)反射類PHP物件反射
- 物件導向之內部類物件
- C++ 類(物件導向初探)C++物件
- 物件導向-物件導向思想物件
- PHP 物件導向 (八)類的自動載入PHP物件
- Python進階之物件導向(類的特殊方法)Python物件
- java的物件導向Java物件
- Java語言之物件導向—類與物件(上)Java物件
- php中的程式導向與物件導向PHP物件
- Visual Basic for ApplicationAPP
- PHP 物件導向 (二)類屬性PHP物件
- PHP物件導向(OOP)—-分頁類PHP物件OOP
- 物件導向:希望可以遇到對的那個人物件
- 關於JS的物件導向的思考和總結JS物件
- 更多物件導向的JavaScript物件JavaScript
- Golang 中的物件導向Golang物件
- JavaScript 的物件導向(OO)JavaScript物件
- Java:Java的物件導向Java物件
- 物件導向:類的定義和繼承的幾種方式物件繼承
- JavaScript物件導向—物件的建立和操作JavaScript物件
- 課時37:類與物件:物件導向程式設計物件程式設計