c++ - una - como ocultar ventanas en la barra de tareas windows 7
¿Cómo se puede ocultar una ventana de la aplicación win32? (5)
Quiero ejecutar la aplicación en modo silencioso al pasar un parámetro; de lo contrario, mostraré la ventana.
Bueno, para empezar, podría decidir no crear una ventana si este parámetro se pasa, de lo contrario, puede intentar llamar a ShowWindow , con el control de su ventana y con el parámetro SW_HIDE
, y ver si eso hace lo que necesita.
Otra forma de ocultar la ventana y nunca mostrarla, pero aún crearla, es elegir nunca llamar a ShowWindow
con SW_HIDE
en él, y crearlo con CreateWindow
/ CreateWindowEx
, y no establecer el indicador WS_VISIBLE
en el parámetro dwStyle
.
Creo que una mejor solución no será crear la ventana si no es necesaria. Eche un vistazo a la función principal y verá el código que crea la ventana. Llámalo solo si quieres abrir la ventana.
Si tiene una pantalla basada en MFC CWnd
, entonces CWnd::ShowWindow(SW_HIDE);
Si está utilizando solo win32 entonces ShowWindow(hWnd, SW_HIDE);
Otras cosas que la gente hace dependiendo de tus objetivos
- hacer que la ventana sea muy pequeña
- mover la ventana fuera del área de escritorio visible
ShowWindow(... SW_HIDE ...)
no funciona?
La mejor práctica aquí es no crear la ventana en primer lugar . Nada te obliga a crear una ventana en InitInstance. Sin embargo, si está trabajando con MFC, es probable que una gran parte de su lógica de aplicación / dominio / negocio esté allí, estrechamente unida a esos manejadores de mensajes MFC y demás. En ese caso, la ventana deberá existir.
cree la ventana, omita el indicador WS_VISIBLE y no llame a ShowWindow.
o
Cuando llame a showWindow (), agregue el parámetro SW_HIDE.
ShowWindow(hWnd, SW_HIDE);