GetWindow、GetTopWindow和GetNextWindow(窗口句柄获取!!!)

171 篇文章 2 订阅
150 篇文章 2 订阅

GetWindow

  

[delphi] view plaincopy

  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:指明窗口返回的是前一窗口的句柄还是后一窗口的句柄。该参数可以是下列两个值之一:

[delphi] view plaincopy

  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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值