delphi - 找出一个窗口是否有一个子窗口

标签 delphi winapi delphi-7

我使用以下代码获取窗口句柄:

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


h有效(> 0)。

我如何确定此窗口是否有任何子窗口?

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

我要在这里完成的工作是确定MozillaWindowClass窗口是属于Thunderbird还是Firefox。看起来Thunderbird的MozillaWindowClass没有子级,而Firefox没有,因此这是一种快速查找方法。 (我无法使用CreateToolhelp32Snapshot()来查找进程名称,因为我的代码也需要在Windows 2000上运行)。

最佳答案

确定窗口是否有子级的最简单方法是调用GetWindow传递GW_CHILD

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

关于delphi - 找出一个窗口是否有一个子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840052/

相关文章:

delphi - 整数真常数的类型是什么?

windows - 无法从 WinApi crate 调用 CryptDecrypt,因为它找不到模块

c++ - 谁能解释为什么这两个转换为 unsigned long long 会产生不同的结果?

c++ - 将使用 CreateEvent 和 WaitForMultipleObjects 的程序移植到 Linux

delphi - 指向(子)方法函数的指针?

delphi - TPaintBox 到 JPEG/BMP - 缓冲区

delphi - 如何在TWebbrowser中获取JS脚本控制台输出?

delphi - 用于 Web 的 IntraWeb/VCL 资源

delphi - 如何克隆 TPopupMenu 的菜单项?

delphi - 禁用或删除 MDI 子窗体最小化和恢复操作