Page 1 of 1

Dialogos pequeños resizan mal

Posted: Tue Oct 14, 2008 7:38 am
by Rafael Clemente
Los diálogos de menos de 20 pixel de altura resizan mal:

Code: Select all

#include "FiveWin.ch"

FUNCTION Main()
Local oWnd, oDlg1, oDlg2
   Define Window oWnd From 0,0 To 400,300 Pixel Title "Test de Resize" Color CLR_BLACK, CLR_WHITE

   @ 30,20 Say "Este resiza bien:" Of oWnd Size 100,20 Pixel
   Define Dialog oDlg1 From 50,20 to 120,100 Pixel Of oWnd Style WS_CHILD+WS_THICKFRAME
   Activate Dialog oDlg1 NoWait

   @ 30,140 Say "Este resiza mal:" Of oWnd Size 100,20 Pixel
   Define Dialog oDlg2 From 50,140 to 60,220 Pixel Of oWnd Style WS_CHILD+WS_THICKFRAME
   Activate Dialog oDlg2 NoWait

   Activate Window oWnd
Return Nil
Alguien sabe alguna forma de solucionarlo?
Gracias,
Rafael

Posted: Tue Oct 14, 2008 7:46 am
by Antonio Linares
Rafael,

Parece un bug del propio Windows.

Una solución sería no dejarlos hacerse más pequeños del tamaño en el que empiezan a fallar.

Revisa samples\TestSize.prg (aMinMaxInfo).

Posted: Tue Oct 14, 2008 7:49 am
by Rafael Clemente
Sí, Antonio. El problema es que los utilizo como barras en un gráfico de barras resizables. Si los hago demasiado altos (parece que la mínima altura que funciona es SM_CYCAPTION ) el gráfico queda feo y ocupa mucho sitio.

Rafael[/url]

Posted: Tue Oct 14, 2008 7:56 am
by Antonio Linares
Rafael,

Otra idea es que no uses un diálogo, sino un control, por ejemplo un TPanel.

El problema, que tendrás que codificar su redimensionamiento, pero puedes basarte en el código que FiveWin usa cuando se usa la cáusula DESIGN.

En cuanto a moverlo, en estos foros publicamos un ejemplo de como mover una ventana sin caption. Busquemos por bMMoved en estos foros.

Posted: Tue Oct 14, 2008 8:01 am
by Rafael Clemente
Me lo miraré. Lástima, porque usar diálogos me resultaba muy cómodo porque ya lllevan incorporado todo el mecanismod e resizing y moving...
Gracias
Rafael