2011-08-04 11 views
7

Para modificar una ventana de otro programa, necesito encontrar un SysTreeView32 específico en él utilizando EnumChildWindows llamada de API.¿Por qué algunos elementos aparecen atenuados en la vista de Windows de Spy ++?

Cuando inspecciono la ventana usando Spy ++, hay un número de SysTreeView32 en él, pero todos están en gris salvo uno, que es el que estoy buscando.

La siguiente imagen es un ejemplo de los elementos grises:

Why are some items grey?

¿Por qué son los elementos que aparecen de color gris y lo que hace llamada a la API Spy ++ uso para saber si se debe mostrar en gris un artículo o no?

Respuesta

15

Esas son simplemente ventanas no visibles, es decir, HWND que no tienen el bit de estilo WS_VISIBLE establecido. A menudo son ventanas de trabajo (ventanas que solo existen para procesar varios mensajes en segundo plano) o, en algunos casos, son UI que aún no se han hecho visibles. Por ejemplo, una ventana que le permite ocultar o mostrar una barra de herramientas puede simplemente ocultarla haciéndola invisible en lugar de destruirla y volver a crearla más tarde.

En su caso específico, WorkerW podría ser un marcador de posición para alguna otra pieza de UI que no se necesita ahora, mientras que msctl_statusbar32 parece una barra de estado oculta.

+8

Observe también que la ventana puede estar atenuada incluso si tiene WS_VISIBLE = verdadero conjunto - cuando uno de sus padres tiene WS_VISIBLE = false. – levanovd

Cuestiones relacionadas