HWND

HWND

HWND是Handle to A Window的縮寫,視窗句柄. h 是類型描述,表示句柄(handle), Wnd 是變數對象描述,表示視窗,所以hWnd 表示視窗句柄。

hWnd含義

h 代表handle, Wnd 是表示window,所以hWnd 表示視窗句柄

通俗地說,如果把視窗當做一個人的話,那么HWND就是該人的身份證號碼。

hWnd屬性

返回窗體或控制項的句柄(注意 OLE 容器控制項不支持該屬性。句柄:是由操作環境定義的一個僅有的整數值,它被程式用來標識或者切換到對象,如窗體或控制項等。)。

語法

object. hWnd

object 所在處代表一個對象表達式,其值是“套用於”列表中的一個對象。

說明

Microsoft Windows 運行環境,通過給應用程式中的每個窗體和控制項分配一個句柄(或 hWnd)來標識它們。   hWnd 屬性用於Windows API調用。許多 Windows 運行環境函式需要活動視窗的 hWnd 作為參數

注意 由於該屬性值在程式運行時可以改變,絕對不要將 hWnd 存儲在變數中。

如果 User Control 的 Windowless 屬性設為 True, 則 hWnd 屬性將返回 0 。

作用對象:

CheckBox 控制項

ComboBox 控制項

CommandButton 控制項

DataGrid控制項

DirListBox 控制項

DriveListBox 控制項

FileListBox 控制項

Form 對象、Forms 集合

Frame 控制項

HScrollBar、VScrollBar 控制項

ListBox 控制項

MDIForm 對象

OLE 容器控制項

OptionButton 控制項

PictureBox 控制項

PictureClip 控制項

TextBox 控制項

示例

這個例子強制窗體保持在最前面。要試用此例,先創建一個窗體(不是一個 MDI 子窗體),然後為該窗體創建一選單叫做 Main。在其中插入一子選單叫做 Always On Top,並且把它的名字設定為 mnuTopmost。利用“工程”選單中的“添加模組”命令創建一個新模組。把 Declare 語句貼上到新模組的聲明部分,確保該語句在一行,並且沒有斷點或隱藏字。然後把 Sub 過程貼上到窗體的聲明部分並按 F5 鍵。

' 聲明 Windows 例程.

' 該語句應在模組中。

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

' 設定一些常數值(從 WIN32API.TXT).

Const conHwndTopmost = -1

Const conHwndNoTopmost = -2

Const conSwpNoActivate = &H10

Const conSwpShowWindow = &H40

Private Sub mnuTopmost_Click ()

' 從選單中加入或刪除檢查標誌.

mnuTopmost.Checked = Not mnuTopmost.Checked

If mnuTopmost.Checked Then

' 打開 TopMost 屬性.

SetWindowPos hWnd, conHwndTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpShowWindow

Else

' 關閉 TopMost 屬性.

SetWindowPos hWnd, conHwndNoTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpShowWindow

End If

End Sub

無論何時只要 ComboBox 收到焦點,在這個例子中都會自動放下 ComboBox 控制項的列表部分。要試用此例,”創建一個包含 ComboBox 控制項和 OptionButton 控制項的新窗體(只為獲得焦點用)。用先獲得“工程”選單中的“添加模組”命令創建一個新的模組。把 Declare 語句貼上到新模組的聲明部分,確保該語句在一行,並且沒有斷點或自動換行。然後把 Sub 過程貼上到窗體的聲明部分,並按 F5 鍵。用 TAB 鍵將焦點移動到 ComboBox 以及從 ComboBox 移出。

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

Private Sub Combo1_GotFocus ()

Const CB_SHOWDROPDOWN = &H14F

Dim Tmp

Tmp = SendMessage(Combo1.hWnd, CB_SHOWDROPDOWN, 1, ByVal 0&)

End Sub

對象表達式

說明具體對象的表達式,可以包含對象的容器。例如,應用程式可以擁有 Application 對象,其中包含 Document 對象,而 Document 對象又包含 Text 對象。

Windows API Windows API(應用程式編程接口)由函式、訊息、數據結構、數據類型以及語句組成,它們可在創建在 Microsoft Windows 下運行的應用程式中使用。API 中使用最多的部分是從 Windows 中調用 API 函式的代碼元素,包括過程聲明(Windows 函式)、用戶自定義類型的定義(用來傳遞到函式中的數據結構),以及常數聲明(傳遞給函式以及從函式中返回的值)。

相關詞條

相關搜尋

熱門詞條

聯絡我們