您的位置:首页 > 其它

根据指定条件获得窗口的函数

2014-04-03 11:09 176 查看
以下几个函数可以根据指定条件获得窗口的句柄:

1、FindWindow返回指定顶层窗口的句柄,该窗口的类名和窗口名与参数中指定的字符串相匹配,在查找时不区分大小写。这个函数不查找子窗口,如果要查找子窗口使用FindWindowEx()。函数原型:

HWND WINAPI FindWindow(
       LPCTSTR lpClassName, //窗口类名
       LPCTSTR lpWindowName //窗口名
);
2、GetWindow返回与指定窗口有指定关系(如Z序或所有者)的窗口的句柄,如果与指定窗口有特定关系的窗口不存在,则返回NULL。函数原型:

HWND WINAPI GetWindow(
      HWND hWnd, //指定窗口
      UINT uCmd  //与要获得窗口的关系
);


uCmd可以是下列值之一:

GW_CHILD:如果指定窗口是父窗口,则获得的是在Z序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口。

GW_ENABLEDPOPUP:返回的句柄属于指定窗口的所拥有的启用弹出窗口;如果没有启用弹出窗口,则获得的句柄与指定窗口相同。

GW_HWNDFIRST:返回的句柄标识了在Z序最高端的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在Z序最高端的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在z序最高端的顶层窗口:如果指定窗口是子窗口,则句柄标识了在Z序最高端的同属窗口。

GW_HWNDLAST:返回的句柄标识了在z序最低端的相同类型的窗口。如果指定窗口是最高端窗口,则该柄标识了在z序最低端的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在z序最低端的顶层窗口;如果指定窗口是子窗口,则句柄标识了在Z序最低端的同属窗口。

GW_HWNDNEXT:返回的句柄标识了在Z序中指定窗口的下一个相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口下的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在指定窗口下的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口下的同属窗口。

GW HWNDPREV:返回的句柄为在Z序中指定窗口的上一个相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口上的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在指定窗口上的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口上的同属窗口。

GW_OWNER:返回的句柄为指定窗口的所有者窗口(如果存在)。GW_OWNER没有父窗口的含义,如果想得到父窗口请使用GetParent()。

3、GetNextWindow()函数可以获得指定窗口(控件)的上一个或下一个窗口(控件)的句柄。函数原型:

HWND WINAPI GetNextWindow(
        HWND hWnd, //指定窗口
        UINT wCmd  //查询方式:向上或向下查找
);

参数wCmd指定查询方式:GW_HWNDNEXT为返回下一个窗口,GW_HWNDPREV则为返回上一个窗口。

4、WindowFromPoint返回包含指定点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。函数原型:

HWND WINAPI WindowFromPoint(POINT Point);
WindowFromPoint函数不获取隐藏或无效窗口的句柄,应用程序应该使用ChildWindowFromPoint函数进行无限制查询,这样就可以获得静态文本控件的句柄。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: