Ocultar Ventana al inicio de aplicación

06/03/2005 - 09:05 por JLK | Informe spam
Hola a todos/as

Veréis estoy haciendo un programa con VC++ basado en diálogo.

El programa crea un icono en la barra de tareas.
Lo que quiero hacer es que nada más empezar el programa se oculte la ventana
sin que el usuario
tenga que pulsar ningún botón y el programa YA comience con el icono en la
barra de tareas desde el principio.

He probado en la función OnInitDialog() al final de dicha función llamando
a ShowWindow(SW_HIDE);

pero la ventana sigue apareciendo al principio, parece ser que después de
OnInitDialog() el programa
crea la ventana seguramente.

Bueno no me extiendo más.
Si alguien sabe o tiene alguna idea de como hacer que la ventana del
programa se muestre escondida desde el
principio le estaré muy agradecido pues llevo varios días en ello.

Saludos.
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
06/03/2005 - 13:43 | Informe spam
Añade un manejador para el mensaje WM_WINDOWPOSCHANGING, quita la bandera
SWP_SHOWWINDOW de la estructuras lvpndpos

void CTestDlg::OnWindowPosChanging( WINDOWPOS* lpwndpos )
{
if ( !m_bVisible )
lpwndpos->flags &= ~SWP_SHOWWINDOW ;

CDialog::OnWindowPosChanging(lpwndpos);
}


Cuando necesites volver a mostrar la ventana establece a true m_bHideWindow
y llama a ShowWindow(SW_SHOW)

void CTestDlg::DisplayWindow( BOOL bShow )
{
if ( bShow )
{
m_bVisible = TRUE;
ShowWindow( SW_SHOWNORMAL );
}
else
{
m_bVisible = FALSE;
ShowWindow( SW_HIDE );
}
}


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares