找出窗口是否有子窗口

时间:2013-02-12 19:15:16

标签: delphi winapi delphi-7

我使用以下代码获得了一个窗口句柄:

var h: THandle;
...
h := FindWindow('MozillaWindowClass', NIL);

h有效(> 0)。

如何确定此窗口是否包含任何子窗口?

我不能使用FindWindowEx(),因为它需要一个类名。

我想在这里完成的是找出MozillaWindowClass窗口是属于Thunderbird还是Firefox。看起来Thunderbird有一个没有孩子的MozillaWindowClass,但Firefox没有,所以这将是一个快速找到的方法。 (我不能使用CreateToolhelp32Snapshot()来查看进程名称,因为我的代码也需要在Windows 2000上运行。)

1 个答案:

答案 0 :(得分:6)

确定某个窗口是否有子女的最简单方法是通过GW_CHILD致电GetWindow

function HasChildren(Window: HWND): Boolean;
begin
  Result := GetWindow(Window, GW_CHILD)<>0;
end;