由于 API 過程存在于 Visual Basic 應用程序之外的文件中,在使用時必須指定過程的位置和調(diào)用參數(shù)。可以用 Declare 語句提供這類信息。在聲明了 API 過程之后,可以把它當做 Visual Basic 自己的過程使用。
如果在 Visual Basic 中直接調(diào)用 API,那么 Visual Basic 環(huán)境下固有的安全機制將受到不利影響。這意味著在測試和調(diào)試程序時可能會遇到更多的系統(tǒng)故障。為了減少這種危險,在聲明 API 過程、傳遞參數(shù)和指定類型的時候務(wù)必要小心。無論在什么情況下,一定要經(jīng)常保存已經(jīng)完成的工作。API 可以提供不同凡響的功能,但是要用好它也不容易。
下例將演示如何調(diào)用 Windows API 中的過程。調(diào)用函數(shù) SetWindowText 來改變一個窗體的標題欄。當然,在實際應用中,通??偸抢?Visual Basic 的 Caption 屬性來改變標題欄。該示例的目的在于說明如何聲明并調(diào)用過程。
聲明 API 過程
首先,在模塊的聲明部分對過程進行聲明:
Private Declare Function SetWindowText Lib "user32" _
Alias "SetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String) As Long
過程的精確語法定義可以用 API Viewer 應用程序找到,在 Win32api.txt 文件中也可以找到它。如果將 Declare 放在 Form 或者 Class 模塊內(nèi),那么必須在它的前面加上 Private 關(guān)鍵字。同一個 API 過程在一個工程中只需聲明一次;然后可以任意調(diào)用。
調(diào)用 API 過程
在聲明了函數(shù)之后,調(diào)用它的方式與標準的 Visual Basic 函數(shù)相同。在下例中,F(xiàn)orm Load 事件調(diào)用了上面聲明的過程。
Private Sub Form_Load()
SetWindowText Form1.hWnd, "Welcome to VB"
End Sub
在運行這段代碼時,函數(shù)首先使用 hWnd 屬性確定要修改標題欄的窗口(Form1.hWnd),然后將標題欄修改為“Welcome to VB”。
需要牢記的是:Visual Basic 不能驗證傳遞到 API 過程的值是否正確。如果傳遞了錯誤的值,那么過程將出錯,并可能因此導致 Visual Basic 應用程序停止運行。這樣就不得不重新加載和啟動應用程序。在測試 API 過程時千萬要小心,一定要經(jīng)常地保存自己的工作。
極少數(shù) API 調(diào)用能夠識別缺省的 Variant 數(shù)據(jù)類型。最好聲明具體的變量類型并使用 Option Explicit,這樣,API 的可靠性要高得多。
本文來自: 乘風原創(chuàng)程序(
http://www.qqcf.com) 詳細出處參考:
http://study.qqcf.com/web/162/17536.htm?3369281525=657115321
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。