Почему некоторые элементы отображаются серым в представлении Spy ++ для Windows? - PullRequest
10 голосов
/ 04 августа 2011

Чтобы изменить окно другой программы, мне нужно найти в нем определенный SysTreeView32, используя EnumChildWindows вызов API.

Когда я проверяю окно с помощью Spy ++, в нем есть число SysTreeView32, но все они серого цвета, кроме одного, которое я ищу.

Следующая картинка является примером серых предметов:

Why are some items grey?

Почему показанные элементы серые и какой вызов API использует Spy ++, чтобы узнать, должен ли он выделять серый элемент или нет?

1 Ответ

17 голосов
/ 04 августа 2011

Это просто невидимые окна - то есть HWND, для которых не установлен бит стиля WS_VISIBLE. Они часто являются рабочими окнами - окнами, которые просто существуют для обработки различных сообщений в фоновом режиме, или в некоторых случаях являются пользовательским интерфейсом, который еще не стал видимым. Например, окно, которое позволяет вам скрыть или показать панель инструментов, может просто скрыть ее, сделав ее невидимой, а не уничтожив ее и воссоздав позже.

В вашем конкретном случае WorkerW может быть заполнителем для некоторого другого элемента пользовательского интерфейса, который сейчас не нужен, в то время как msctl_statusbar32 выглядит как скрытая строка состояния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...