Delphi 窗體函數GetWindow


Delphi 窗體函數GetWindow
GetWindow是計算機的函數,該函數返回與指定窗口有特定關系(如Z序或所有者)的窗口句柄,函數原型是HWND GetWindow(HWND hWnd,UINT nCmd)。
//聲明: GetWindow(   hWnd: HWND; {指定的窗口句柄}   uCmd: UINT  {指定的關系選項} ): HWND;      {失敗返回0; 成功返回符合的窗口句柄} //uCmd 可選值: GW_HWNDFIRST = 0; {同級別第一個} GW_HWNDLAST  = 1; {同級別最后一個} GW_HWNDNEXT  = 2; {同級別下一個} GW_HWNDPREV  = 3; {同級別上一個} GW_OWNER    = 4; {屬主窗口} GW_CHILD    = 5; {子窗口}

參數
hWnd:窗口句柄。這個函數要返回的窗口句柄是依據nCmd參數值相對於hWnd參數的關系。
nCmd:說明指定窗口與要獲得句柄的窗口之間的關系。該參數值可以是下列之一:
GW_CHILD(&H5):如果指定窗口是父窗口,則獲得的是在Tab序頂端的子窗口的句柄,否則為NULL。函數僅檢查指定父窗口的子窗口,不檢查繼承窗口。
GW_ENABLEDPOPUP(&H6):(WindowsNT 5.0)返回的句柄標識了屬於指定窗口的處於使能狀態彈出式窗口(檢索使用第一個由GW_HWNDNEXT 查找到的滿足前述條件的窗口);如果無使能窗口,則獲得的句柄與指定窗口相同。
GW_HWNDFIRST(&H0):返回的句柄標識了在Z序最高端的相同類型的窗口。如果指定窗口是最高端窗口,則該句柄標識了在Z序最高端的最高端窗口;如果指定窗口是頂層窗口,則該句柄標識了在z序最高端的頂層窗口:如果指定窗口是子窗口,則句柄標識了在Z序最高端的同屬窗口。
GW_HWNDLAST(&H1):返回的句柄標識了在z序最低端的相同類型的窗口。如果指定窗口是最高端窗口,則該柄標識了在z序最低端的最高端窗口:如果指定窗口是頂層窗口,則該句柄標識了在z序最低端的頂層窗口;如果指定窗口是子窗口,則句柄標識了在Z序最低端的同屬窗口。
GW_HWNDNEXT(&H2):返回的句柄標識了在Z序中指定窗口下的相同類型的窗口。如果指定窗口是最高端窗口,則該句柄標識了在指定窗口下的最高端窗口:如果指定窗口是頂層窗口,則該句柄標識了在指定窗口下的頂層窗口;如果指定窗口是子窗口,則句柄標識了在指定窗口下的同屬窗口。
GW HWNDPREV(&H3):返回的句柄標識了在Z序中指定窗口上的相同類型的窗口。如果指定窗口是最高端窗口,則該句柄標識了在指定窗口上的最高端窗口;如果指定窗口是頂層窗口,則該句柄標識了在指定窗口上的頂層窗口;如果指定窗口是子窗口,則句柄標識了在指定窗口上的同屬窗口。
GW_OWNER(&H4):返回的句柄標識了指定窗口的所有者窗口(如果存在)。GW_OWNER與GW_CHILD不是相對的參數,沒有父窗口的含義,如果想得到父窗口請使用GetParent()。例如:例如有時對話框的控件的GW_OWNER,是不存在的。
返回值:如果函數成功,返回值為窗口句柄;如果與指定窗口有特定關系的窗口不存在,則返回值為NULL。
若想獲得更多錯誤信息,請調用GetLastError函數。
備注:在循環體中調用函數EnumChildWindow比調用GetWindow函數可靠。調用GetWindow函數實現該任務的應用程序可能會陷入死循環或退回一個已被銷毀的窗口句柄。
 
//獲得所有窗體標題
var
  H_window:HWND;
  Text:array[0..255] of char;
begin
  H_window:=GetWindow(Handle,GW_HWNDFIRST);
  While H_window<>0 do begin
  if GETWindowText(H_window,@text,255)>0 then
    memo1.Lines.Add(StrPas(@Text));
  H_window:=GetWindow(H_Window,GW_HWNDNEXT);
end;

  

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM