建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛樂安卓下載和:感悟VB細水長流話API(六2)

?

感悟VB細水長流話API(六-1)

第九話 探求子窗口

這里又是一個特其余例子,圖像處置懲罰我還會兩下,不過這可不是處置懲罰來的,而是真實的抓圖。我把開始按鈕移到這里來了。再看看圖6,怎么樣?故意思吧?

這里我要先容幾個API:

Private Declare Function FindWindow Lib "user和記娛樂安卓下載和32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

首先是FindWindow。FindWindow可以根據所給的前提,從桌面上探求一個窗口,lpClassName是窗口的類名,而lpWindowName是窗口的標題。我們可以通報lpClassName,讓它找相符的類名的窗口,或通報 lpWindowName,讓它找相符的標題的窗口,假如我們不必要兩個前提都相符,則另一個參數可以通報vbNullString,讓它輕忽。它的返回值便是找到的窗口的句柄。

那么什么是類名?避開C++的相關術語來說,著實Windows的窗口都是某種類中的一種,這個“類”可所以Textbox、 Combobox,也可所以由用戶來定義的,這個窗口是屬于哪一類的,它的類名便是什么。GetWindow也可以用來探求某個窗口并返回其句柄,但它只限于在某個窗口中探求子窗口,是以它必要通報hWnd以表示在哪個窗口里探求。而 wCmd用來描述要找的子窗口與父窗口的關系。它的值如下:

GW_CHILD:探求第一個子窗口

GW_HWNDFIRST:探求第一個同級窗口,或探求第一個頂級窗口

GW_HWNDLAST:探求著末一個同級窗口,或探求著末一個頂級窗口

GW_HWNDNEXT:探求下一個同級窗口

GW_HWNDPREV:探求前一個同級窗口

GW_OWNER:探求窗口的所有者(即父窗口)

我們先來理解什么是同級窗口和頂級窗口。打個比方,假如一個窗口有三個子窗口,則這三個窗口都是同一級的,互為同級窗口。假如我們從沒探求過一個子窗口,那么API 不知道我們要找的是和哪個窗口同級,那么此時它找的是頂級窗口,頂級窗口等于子窗口,但這個子的關系是直接的,而不會是子窗口的子窗口(即孫子,別笑,這里的術語不是我自己造的)。著末一個GetClassName和曩昔講過的幾個字符串相關的API用法差不多,hWnd是窗口句柄,lpClassName是用來接管窗口類名的緩沖區,nMaxCount則是闡明緩沖區的大年夜小。

那么接下來我是若何用它們的呢?看這里:

Dim hTaskbar As Long, hStartbutton As L和記娛樂安卓下載和ong

Dim sClass As S和記娛樂安卓下載和tring * 250

hTaskbar = FindWindow("Shell_traywnd", vbNullString)

hStartbutton = GetWindow(hTaskbar, GW_CHILD)

Do

GetClassName hStartbutton, sClass, 250

If LCase(Left$(sClass, 6)) = "button" Then Exit Do

hStartbutton = GetWindow(hStartbutton, GW_HWNDNEXT)

Loop

我應用FindWindow從桌面上找到了一個類名為 “Shell_traywnd”的窗口,它便是義務欄(不要問我是怎么知道它的類名的)。然后我又用GetWindow函數,從義務欄找到第一個子窗口。接下來,我用一個Do…Loop布局的輪回為上一次找到的子窗口反省其類名,假如類名是button,則闡和記娛樂安卓下載和明是個按鈕,一樣平常來說,義務欄上只有一個是button類的,以是一找到,它勢必便是“開始”按鈕了。假如沒找到,則仍應用GetWindow,但此次和第一次不合,我通報的不是義務欄的句柄,而是上一次找到的子窗口的句柄,為的是找下一個同級窗口,就這樣一次次輪回直到找到開始按鈕。

那么,開始按鈕就被我這么找到了,然后我就可以像對待其他窗口一樣對待它:比如將它移動。不要忘了上一期所講的內容,SetWindowPos將在這里孕育發生感化,你可以移動它,或者為著末一個參數組合上SWP_HIDEWINDOW,閃開始按鈕變得弗成見,或者組合SWP_SHOWWINDOW從新顯示……

接下來輪到義務欄了,你從圖6中可以看到在開始按鈕的位置有另一個“厲害”的按鈕取代它,這是上一話的內容:SetParent。我用SetParent為藍本在Form1上的按鈕指定了新的父窗口——義務欄。假如你查看我的示例源法度榜樣,你會發明在此按鈕的GotFocu和記娛樂安卓下載和s事故中,我把焦點轉移給了另一個按鈕,緣故原由在上一話已經說了。

在示例源法度榜樣中,我還演示了暗藏和顯示義務欄,仍舊是SetWindowPos的功勛,提醒一下,為了不改變窗口的一些屬性,要在著末一個參數組合上相宜的值。

好了,這一期的內容就這么多,我想這一次你應該好好鉆研我的源法度榜樣,里面的器械涉及到上一期和本期的內容,把它消化下去吧。

源法度榜樣下載地址是:http://www.cfan.net.cn/qikan/cxg/0206gwv.zip。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
赚钱双色球技术 吉林时时彩计划软件手机版下载 多乐彩 快乐10分钟开奖规则 pk10计划 天津11选5选号方法 双色球开奖结果 云南11选5 麻将棋牌辅助神器 卖微信群赚不赚钱