为什么 Spy 的 Windows 视图中的某些项目呈灰色?

发布于 2024-11-27 23:25:51 字数 337 浏览 0 评论 0原文

要修改另一个程序的窗口,我需要使用 EnumChildWindows API 调用在其中找到特定的 SysTreeView32

当我使用 Spy++ 检查窗口时,其中有许多 SysTreeView32,但除了我正在寻找的一个之外,所有其他都呈灰色。

下图是灰色项目的示例:

Why are some items grey?

为什么显示的项目是灰色的以及 API 调用Spy++ 是否用来知道是否应该使某个项目变灰?

To modify a window of another program, I need to find a specific SysTreeView32 in it using EnumChildWindows API call.

When I inspect the window using Spy++, there are a number of SysTreeView32's in it but all are greyed out except one, which is the one I'm looking for.

The following picture is an example of grey items:

Why are some items grey?

Why are the shown items gray and what API call does Spy++ use to know whether it should grey out an item or not?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

莳間冲淡了誓言ζ 2024-12-04 23:25:51

这些只是不可见的窗口 - 即没有设置 WS_VISIBLE 样式位的 HWND。它们通常是工作窗口 - 只是为了在后台处理各种消息而存在的窗口 - 或者在某些情况下是尚未可见的 UI。例如,允许您隐藏或显示工具栏的窗口可能只是通过使其不可见来隐藏它,而不是销毁它并稍后重新创建它。

在您的具体情况下,WorkerW 可能是目前不需要的其他 UI 部分的占位符,而 msctl_statusbar32 看起来像是一个隐藏的状态栏。

Those are just non-visible windows - ie HWNDs that don't have the WS_VISIBLE style bit set. They are often worker windows - windows that just exist to process various messages in the background - or in some cases are UI that's yet to become visible. For example, a window that lets you hide or show a toolbar may just hide it by making it invisible rather than destroying it and recreating it later.

In your specific case, the WorkerW could be a placeholder for some other piece of UI that's not needed right now, while the msctl_statusbar32 looks like it's a hidden status bar.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文