Pregunta

Es muy fácil forzar que un ícono de la barra de tareas muestre un globo de información sobre herramientas:todo lo que necesito hacer es configurar el indicador NIF_INFO al llamar a Shell_NotifyIcon (NIM_MODIFY, ...), y aparece el globo, no hay problema.

Ahora también quiero poder ocultar el globo cuando ya no lo necesite, pero no encuentro la manera de hacerlo.Intenté borrar el indicador NIF_INFO y llamar a Shell_NotifyIcon (NIM_MODIFY, ...), pero el globo permaneció.Desaparece por sí solo, unos segundos después, pero eso no es lo que quiero:Quiero ocultarlo de inmediato, cuando mi programa cree que debería ocultarse.

La única forma de hacer desaparecer el globo parece ser destruir el ícono y luego agregarlo nuevamente a la barra de tareas, pero es feo.

¿Es posible ocultar el globo sin volver a crear el icono de la barra de tareas?Gracias.

¿Fue útil?

Solución

Para ocultar inmediatamente un globo, establecer el miembro de la szInfo NOTIFYICONDATA a una cadena vacía, como nid.szInfo[0] = 0; y llame Shell_NotifyIcon( NIM_MODIFY, &nid ).

Otros consejos

Yo diría que realmente no es lo mejor para el usuario eliminar por la fuerza un globo de notificación.A veces, un usuario no ve una notificación de inmediato y ese desvanecimiento lento que ocurre durante un par de segundos les da la oportunidad de echar un vistazo antes de que desaparezca el globo.Desde una perspectiva de usabilidad, mostrar el globo debería ser responsabilidad de la aplicación, pero retirar el globo debería ser realmente responsabilidad del usuario.De lo contrario, podría estar ocultando información que realmente estaban interesados ​​en ver y, al ocultarla a la fuerza de inmediato, elimina por completo la "última oportunidad" que tiene el usuario durante los globos que se desvanecen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top