Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





No minimizar una ventana MFC

Iniciado por vincent, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

vincent

                                Buenas!

Estoy haciendo una aplicación con MFCs (en las que soy un principiante) y necesito que una ventana no se pueda minimizar. Como lo puedo hacer?

Gracias!                                
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

Drácula

                                Vete al diálogo y verás que en sus propiedade hay una opción para esto.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

_Grey

                                Lo que dice Drácula te servira si haces la ventana con el editor de recursos de Visual C++, si lo tienes que hacer a nivel de codigo, tienes que hacer lo siguiente:

-Si la clase de la aplicacion se basa en la CFrameWnd, busca la funcion :
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
En esta funcion puedes variar el estilo de la ventana, si por ejemplo quieres una ventana "tipica" pero sin el boton de minimizar cambia el cuerpo de la funcion como sigue:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
   cs.style = WS_SYSMENU | WS_MAXIMIZEBOX ;
   if( !CFrameWnd::PreCreateWindow(cs) )
      return FALSE;
   return TRUE;
}

Apartir de aqui, te sera facil cambiar el resto de parametros.

Saludos.                                

vincent

                                Ante todo muchas gracias por vuestras respuestas.

Seria posible también hacer que mi ventana fuera siempre la activa?

Efectivamente necesito saber como se hace sin el editor de recursos de Visual C++.

Muchas gracias!                                
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

fiero

                                Imagino que siempre activa te referiras a que esté siempre visible y no sea ocultada por otras, si es así con esta línea:

SetWindowPos( &wndTopMost, 0, 0, 0, 0,
   SWP_NOSIZE | SWP_NOMOVE);


un saludo                                
www.videopanoramas.com Videopanoramas 3D player

_Grey

                                ... Y ademas de como comenta fiero, tambien puedes usar el parametro dwExStyle para especificarlo :

cs.dwExStyle=WS_EX_TOPMOST;

En lugar de :
cs.style = WS_SYSMENU | WS_MAXIMIZEBOX ;
Tambien se puede usar :
cs.style &=~WS_MAXIMIZEBOX ;
Para conservar los parametros que ya tenga el "style", con lo que el cuerpo de la funcion quedaria en :

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &=~WS_MAXIMIZEBOX ;
cs.dwExStyle=WS_EX_TOPMOST;
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}

Saludotes.                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.