国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB 利用API 獲取窗體上某控件的句柄


可能我們遇到更多的情況是需要獲取指定窗體上某個控件的句柄。我自己在這方面經(jīng)驗比較少,昨天查了很多資料,實際上也沒有看過什么比較好的解決方法,所以只好簡單地說一下自己的大致思路了。

1. 如果我們事先知道該控件的類名或是標(biāo)題,那么似乎可以使用 API 函數(shù) FindWindow 來得到該控件的句柄。FindWindow 的聲明如下(使用 VS 自帶的工具 API Viewer可以查到聲明代碼):

Public Declare Function FindWindow Lib "user32" Alias"FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName AsString) As Long
一般我們只會用到其中一個參數(shù),那么另外一個參數(shù)寫為空字符串 vbNullString 就可以了。

2.另外一種情況就是對該控件的類名或標(biāo)題一無所知,或難以得到。對于這種情況,我想了一種比較笨的辦法,如果有好的方法請高手不吝賜教:先使用 Spy++查看該窗體的結(jié)構(gòu),找到該控件在所屬窗體上的層次和位置,然后在自己的程序中順著這根藤摸過去。由于在一般的應(yīng)用程序中,特定的控件在窗體上的位置一般是固定不變的,所以這個方法還是有效的。我在昨天寫的程序中即應(yīng)用了這種方法解決了如何獲取特定控件句柄的問題。

至于如何知曉 Spy++ 的樹狀結(jié)構(gòu)中看到的某控件就是你所要的目標(biāo)控件,可以同時使用 Spy++和我昨天的那個查看鼠標(biāo)光標(biāo)處的窗口/控件句柄的小程序做對比,看該控件的句柄是否相同。注意:Spy++ 顯示的句柄值為十六進(jìn)制,可以在 VB的小程序中使用 Hex 函數(shù)將十進(jìn)制轉(zhuǎn)為十六進(jìn)制。

那么具體如何得到窗體上目標(biāo)控件的句柄呢?我們先用一個叫做 GetTopWindow 的 API函數(shù)得到窗體上第一個子窗體(控件也是窗體)的句柄,再按照剛才從 Spy++ 中看到的位置,使用 GetNextWindow做一個循環(huán)就可以了。當(dāng)然了,如果該控件的父窗體又是該窗體的一個子窗體,這種方法也是可以的。這兩個 API 的聲明如下:

Public Declare Function GetTopWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetNextWindow Lib "user32" Alias"GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long

最后補充一點:只有當(dāng) GetNextWindow 函數(shù)的第二個參數(shù)為 2 時,才能返回下一個窗體的句柄。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在桌面中嵌入窗體
python和pywin32實現(xiàn)窗口查找、遍歷和點擊
VB使用API的簡明教程
在Visual Basic中如何拖動窗體或控件_VB窗體文章_VB_編程開發(fā)_芯友網(wǎng)
Python pywin32 學(xué)習(xí)筆記(一)
獲取窗體句柄并操縱它
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服