Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Antares en 18 de Septiembre de 2003, 04:22:31 AM

Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: Antares en 18 de Septiembre de 2003, 04:22:31 AM
 Limitar el tamaño minimo de una ventana marco resizable.

Tengo un programa con una ventana marco resizable. ¿Como puedo limitar el encogimiento de la ventana cuando esta alcanza el tamaño minimo deseado?

Antares.
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: DraKKaR en 18 de Septiembre de 2003, 03:32:51 PM
 Se me ocurre una manera, utilizando la API de Windows, aunque es perfectamente aplicable a cualquier API de programación de ventanas.

Utiliza el evento WM_SIZE. Con él detectas cuando se está redimensionando la ventana, y que dimensiones tiene. Compruebas estas dimensiones, y si es menor que el área mínima que deseas, entonces redimensionas la ventana para hacerla tan grande como ese área.

Sencillísimo, ¿no?
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: fiero en 18 de Septiembre de 2003, 06:22:43 PM
 Prueba el mensaje WM_GETMINMAXINFO. Si estás con las MFC, te creará una función así:

void CVentana::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)

donde podrás establecer unos valores mínimos para la ventana:

lpMMI->ptMinTrackSize.x =320;
lpMMI->ptMinTrackSize.y =180;

un saludo

edito: mensaje con J, me lio siempre con el inglés
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: BeRSeRKeR en 18 de Septiembre de 2003, 08:19:22 PM
 Como dice fiero, ese mensaje te servirá. Según la MSDN y si utilizas Win32 a pelo, el parámetro lParam del mensaje (wParam no se utiliza), debe apuntar a una estructura del tipo:

typedef struct {
   POINT ptReserved;
   POINT ptMaxSize;
   POINT ptMaxPosition;
   POINT ptMinTrackSize;
   POINT ptMaxTrackSize;
} MINMAXINFO;


donde podrás especificar el tamaño mínimo de tu ventana (además de otros valores).

Saludos.
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: Antares en 19 de Septiembre de 2003, 12:56:04 PM
 Con el mensaje WM_SIZE lo uso para redimensionar los controles a la ventana y lo intente hacer desde ahi pero por lo visto cuando sueltas el boton del raton se vuelve a dibujar la ventana haciendo inuteles mis if's :P

¡Berseker! Eres el mismo Breseker que me vapuleaba hace unos años en el Starcraft? :D  Yo entraba como OrionMaps aunque igual no te acuerdas mi ;)

gracias a todos, voy a probar.

he estado tiempo que tenia el otro formato anterior del foro y parecia que no entraba nadie veia mis mensajes sin contestacion y nadie preguntaba nada si contestaba, solo yo :P  Me alegro mucho de volver a encontraros, mientras tanto he estado en otros foros, muy buena gente, pero es que aki hay respuestas rapidas y de calidad :_)_______

Antares
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: BeRSeRKeR en 19 de Septiembre de 2003, 03:52:26 PM
 Antares me temo que no soy yo...si me dijeras que soy el que te vapuleaba al quake3 vale, pero al starcraft... :)

Saludos
Título: Limitar El Tamaño Minimo De Una Ventana Marco Resi
Publicado por: Antares en 25 de Septiembre de 2003, 05:10:17 PM
 Me funciono con el WM_GETMINMAXINFO. Se me olvido daros las gracias a todos. sorry

Antares