为什么有些项目在Spy ++的Windows视图中显示为灰色?

Hos*_*ein 10 windows winapi spy++ spy

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

当我使用Spy ++检查窗口时,其中有许多SysTreeView32内容但除了一个之外都是灰色的,这是我正在寻找的.

以下图片是灰色项目的示例:

为什么有些物品是灰色的?

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

Bre*_*McK 17

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

在您的特定情况下,WorkerW可能是现在不需要的其他UI的占位符,而msctl_statusbar32看起来像是一个隐藏的状态栏.

  • 另请注意,即使窗口具有WS_VISIBLE = true设置,窗口也可能显示灰色 - 当其父窗口之一具有WS_VISIBLE = false时. (8认同)