Page 1 of 1

Redimensionar MDICHILD

PostPosted: Tue Feb 26, 2013 11:26 am
by antolin
Buenas.

Tengo una TDMICHILD que cuando la redimensiono con el raton necesito que nunca sea menor que 400X300. Lo he solucionado con el bResized asi:

Code: Select all  Expand view
oWin:Resized := { |S,W,H| CambSize(oWin,S,W,H) }
...
...
FUNCTION CambSize(oWin,Style,nWidth,nHeight)
   IF Style = 0
      IF nWidth < 400
          oWin:nWidth := 400
      ENDIF
      IF nHeight < 300
         oWin:nHeight := 300
      ENIF
   ENDIF
RETURN NIL


Funciona perfectamente, pero me preguntaba si no hubiera una solución más elegante porque visualmente no es muy acertda ya que al window se redibuja constantemente, parapadea, hay como interferencias, y no resulta nada bonito.

¿Hay alguna variable que impida que la ventana se redimensione más hallá de un límite, o algo así?

Lo he intentado con aMinMaxInfo. El redimensionado va perfectamente, pero después no consigo que vuelva a maximizarse normalmente ponga los valores que ponga en ese array ¿Cómo se haría?

¿Alguna idea?

Gracias.

Re: Redimensionar MDICHILD

PostPosted: Tue Feb 26, 2013 11:59 am
by Bayron
Antolin,
Como haz utilizas aMinMaxInfo???

Re: Redimensionar MDICHILD

PostPosted: Tue Feb 26, 2013 12:15 pm
by antolin
Sencillo.

Code: Select all  Expand view
aMinMaxInfo := { Max Width size, Max Height size, Max Pos x, Max Pos y, Min TrackSize x, Min TrackSize y, Max TrackSize x, Max TrackSize y }

Por ejemplo: aMinMaxInfo := { 1024,765,0,0,400,300,1024,765 }
Los valores 'Min TrackSize x' y 'Min TrackSize y' son los que limitan el tamaño mínimo de la pantalla pero aunque reponga el tamaño máximo 'Max TrackSize x' y 'Max TrackSize y' a su valor original, la pantalla no se maximiza correctamente ni con 'Max Width size' y 'Max Height size' adecuados.

Y aun cuando hago aMinMaxInfo := NIL parece como si los valors de máximo tamaño no se borraran y la pantalla tampoco se maximiza correctamente a no ser que la minimize primero.

Re: Redimensionar MDICHILD

PostPosted: Tue Feb 26, 2013 1:14 pm
by antolin
Hay más comands interesantes no incluidos en mi version de FWH (2007):

WM_WINDOWPOSCHANGING 0x0046
WM_WINDOWPOSCHANGED 0x0047
WM_SIZING 0x0214

No se si en otras versiones los han tenido en cuanta.

Re: Redimensionar MDICHILD

PostPosted: Wed Feb 27, 2013 8:58 am
by antolin
Ups... el último mensaje está en el post equivocado