1. 程式人生 > >GetWindow、GetTopWindow和GetNextWindow(視窗控制代碼獲取!!!)

GetWindow、GetTopWindow和GetNextWindow(視窗控制代碼獲取!!!)

GetWindow

  1. //uCmd 可選值:  
  2. GW_HWNDFIRST = 0; {同級別第一個}  
  3. GW_HWNDLAST  = 1; {同級別最後一個}  
  4. GW_HWNDNEXT  = 2; {同級別下一個}  
  5. GW_HWNDPREV  = 3; {同級別上一個}  
  6. GW_OWNER     = 4; {屬主視窗}  
  7. GW_CHILD     = 5; {子視窗}  

      函式功能:該函式返回與指定視窗有特定關係(如Z序或所有者)的視窗控制代碼。

  函式原型:HWND GetWindow(HWND hWnd,UNIT nCmd);

  引數:

  hWnd:視窗控制代碼。要獲得的視窗控制代碼是依據nCmd引數值相對於這個視窗的控制代碼。

  nCmd:說明指定視窗與要獲得控制代碼的視窗之間的關係。該引數值可以是下列之一:

  GW_CHILD:如果指定視窗是父視窗,則獲得的是在Z序頂端的子視窗的控制代碼,否則為NULL。函式僅檢查指定父視窗的子視窗,不檢查繼承視窗。

  GW_ENABLEDPOPUP:(WindowsNT 5.0)返回的控制代碼標識了屬於指定視窗的處於使能狀態彈出式視窗(檢索使用第一個由GW_HWNDNEXT 查詢到的滿足前述條件的視窗);如果無使能視窗,則獲得的控制代碼與指定視窗相同。

  GW_HWNDFIRST:返回的控制代碼標識了在Z序最高階的相同型別的視窗。如果指定視窗是最高階視窗,則該控制代碼標識了在Z序最高階的最高階視窗;如果指定視窗是頂層視窗,則該控制代碼標識了在z序最高階的頂層視窗:如果指定視窗是子視窗,則控制代碼標識了在Z序最高階的同屬視窗。

  GW_HWNDLAST:返回的控制代碼標識了在z序最低端的相同型別的視窗。如果指定視窗是最高階視窗,則該柄標識了在z序最低端的最高階視窗:如果指定視窗是頂層視窗,則該控制代碼標識了在z序最低端的頂層視窗;如果指定視窗是子視窗,則控制代碼標識了在Z序最低端的同屬視窗。

  GW_HWNDNEXT:返回的控制代碼標識了在Z序中指定視窗下的相同型別的視窗。如果指定視窗是最高階視窗,則該控制代碼標識了在指定視窗下的最高階視窗:如果指定視窗是頂層視窗,則該控制代碼標識了在指定視窗下的頂層視窗;如果指定視窗是子視窗,則控制代碼標識了在指定視窗下的同屬視窗。

  GW HWNDPREV:返回的控制代碼標識了在Z序中指定視窗上的相同型別的視窗。如果指定視窗是最高階視窗,則該控制代碼標識了在指定視窗上的最高階視窗;如果指定視窗是頂層視窗,則該控制代碼標識了在指定視窗上的頂層視窗;如果指定視窗是子視窗,則控制代碼標識了在指定視窗上的同屬視窗。

  GW_OWNER:返回的控制代碼標識了指定視窗的所有者視窗(如果存在)。

  返回值:如果函式成功,返回值為視窗控制代碼;如果與指定視窗有特定關係的視窗不存在,則返回值為NULL。

  若想獲得更多錯誤資訊,請呼叫GetLastError函式。

  備註:在迴圈體中呼叫函式EnumChildWindow比呼叫GetWindow函式可靠。呼叫GetWindow函式實現該任務的應用程式可能會陷入死迴圈或退回一個已被銷燬的視窗控制代碼。

  速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;標頭檔案:winuser.h;庫檔案:user32.lib。

GetTopWindow

  函式功能:該函式檢查與特定父視窗相聯的子視窗z序,並返回在z序頂部的子視窗的控制代碼。   函式原型:HWND GetTopWindow(HWND hWnd);   引數:   hWnd:被查序的父視窗的控制代碼。如果該引數為NULL,函式返回Z序頂部的視窗控制代碼。   返回值;如果函式成功,返回值為在Z序頂部的子視窗控制代碼。如果指定的視窗無子視窗,返回值為NULL。   若想獲得更多錯誤資訊,請呼叫GetLastError函式。   速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:不支援;標頭檔案:Winuser.h:庫檔案;user32.lib。

GetNextWindow

  函式功能:該函式返回z序中的前一個或後一個視窗的控制代碼。下一視窗在指定視窗的下面,前一視窗則在上面。如果指定的視窗是頂端視窗,該函式返回下一個(或前一個)頂端視窗的控制代碼。如果指定的視窗是頂層視窗,函式返回下一個(或前一個)頂層視窗的控制代碼。如果函式是子視窗,則函式搜尋下一個或前一個子視窗的控制代碼。

  函式原型:HWND GetNextWindow(HWND hWnd,UNIT wCmd);

  引數:

  hWnd:一個視窗的控制代碼。視窗控制代碼在wCmd引數的基礎上獲得的相對於這個視窗的控制代碼。

  wCmd:指明視窗返回的是前一視窗的控制代碼還是後一視窗的控制代碼。該引數可以是下列兩個值之一:

  1. //uCmd 可選值:  
  2. GW_HWNDFIRST = 0; {同級別第一個}  
  3. GW_HWNDLAST  = 1; {同級別最後一個}  
  4. GW_HWNDNEXT  = 2; {同級別下一個}  
  5. GW_HWNDPREV  = 3; {同級別上一個}  
  6. GW_OWNER     = 4; {屬主視窗}  
  7. GW_CHILD     = 5; {子視窗}  

  GW HWNONEXT:返回在給定視窗的下面視窗的控制代碼。

  GW_HWNDPREV:返回在給定視窗的上面視窗的控制代碼。

  返回值:如果函式成功,返回值是前一視窗(或後一視窗)的控制代碼。如果前後視窗不存在,則返回值為NULL。若想獲得更多錯誤資訊,請呼叫GetLastError函式。

  備註:在設定了GW_HWNDNEXT或GW_GETPREV標誌時,呼叫該函式與呼叫GetWindow函式相同。

  速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:不支援:標頭檔案:Winuer.h;庫檔案:user32.lib。

--------------------- 本文來自 IT登山家 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/qq_35409640/article/details/74462351?utm_source=copy