Page 1 of 1

Mantener fijo un dialogo NOMODAL

PostPosted: Mon Mar 27, 2017 4:23 am
by nanoespinoza
Estimados colegas

Necesito un poco de ayuda para lograr que un dialogo definido de la siguiente manera, no pueda ser movido de la posición en la cual se lo activa inicialmente. He navegado bastante en el foro, y no encuentro la forma de hacerlo.

El código que uso es el siguiente, donde a pesar de ubicarse el dialogo en la posición correcta, se lo puede mover con el ratón:

Code: Select all  Expand view

DEFINE DIALOG oDlgPrg OF oVent FROM oVent:nVertRes()-465, oVent:nHorzRes()-400 TO oVent:nVertRes()-153, oVent:nHorzRes()-72 ;
    PIXEL COLORS CLR_HBLUE, CLR_HBROWN TITLE "Juegos programados" FONT oFnt ;
    STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU )

......

ACTIVATE DIALOG oDlgPrg NOWAIT ON INIT ;
    ( oDlgPrg:Move(oVent:nVertRes()-465, oVent:nHorzRes()-400), TimerPrg(oDlgPrg,oLbxPrg,aDatos,oTmr,300) )
 


Saludos

Fernando Espinoza A.

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Mon Mar 27, 2017 9:13 pm
by armando.lagunas
prueba con estos solamente:


Code: Select all  Expand view
STYLE nOr( WS_POPUP, WS_VISIBLE )

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Tue Mar 28, 2017 2:08 am
by nanoespinoza
Estimado Armando

Gracias por su respuesta; efectivamente su solución funciona, pero yo deseo hacerlo sin eliminar la barra con el caption. Hay alguna forma de hacer esto?

Saludos

Fernando Espinoza A.

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Tue Mar 28, 2017 7:32 am
by Antonio Linares
Prueba con:

STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION )

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Tue Mar 28, 2017 11:46 am
by MarioG
Fernando; prueba con esto (que alguna vez me lo paso Antonio ;-) ), a ver si es lo que buscas
Code: Select all  Expand view
#define  WND_ANCHO   740
#define  WND_ALTO    590
//--------------------------
   DEFINE WINDOW oWnd0 TITLE  "Control de Artículos"
   ...  
   oWnd0:aMinMaxInfo = { WND_ANCHO,WND_ALTO, ;   // xMaxSize,      yMaxSize
                         0, 0, ;                 // xMaxPosition,  yMaxPosition
                         WND_ANCHO,WND_ALTO, ;   // xMinTrackSize, yMinTrackSize
                         WND_ANCHO,WND_ALTO }    // xMaxTrackSize, yMaxTrackSize
 

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 3:11 am
by nanoespinoza
Antonio Linares wrote:Prueba con:

STYLE nOr( WS_POPUP, WS_VISIBLE, WS_CAPTION )


Estimado Antonio,

Lamentablemente tampoco se consigue el efecto que espero, el dialogo igual se puede arrastrar con el ratón.

Saludos

Fernando Espinoza A.

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 3:18 am
by nanoespinoza
MarioG wrote:Fernando; prueba con esto (que alguna vez me lo paso Antonio ;-) ), a ver si es lo que buscas
Code: Select all  Expand view
#define  WND_ANCHO   740
#define  WND_ALTO    590
//--------------------------
   DEFINE WINDOW oWnd0 TITLE  "Control de Artículos"
   ...  
   oWnd0:aMinMaxInfo = { WND_ANCHO,WND_ALTO, ;   // xMaxSize,      yMaxSize
                         0, 0, ;                 // xMaxPosition,  yMaxPosition
                         WND_ANCHO,WND_ALTO, ;   // xMinTrackSize, yMinTrackSize
                         WND_ANCHO,WND_ALTO }    // xMaxTrackSize, yMaxTrackSize
 


Estimado Mario

Hice la prueba, pero el resultado es igual, no consigo que el dialogo se quede fijo en una posición deseada.

Saludos

Fernando Espinoza A.

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 10:26 am
by acuellar
Intenta así

Code: Select all  Expand view

STYLE nOr( WS_CHILD, WS_VISIBLE, WS_CAPTION )
 

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 11:11 am
by MarioG
Fernando; disculpas!!
Tengo un dialog, que no tiene la barra caption, dentro de una ventana; y lo que te pasé lo que hace es no permitir redimensionar al ventana

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 12:42 pm
by armando.lagunas
Hola, cuando defines la barra de caption en el dialogo igual se mueve debido a que windows controla eso, intenta simularla, pintando una barra, utiliza la clase tskin.

yo la use y funciona muy bien, pero no encuentro un ejemplo, por mientras mira esto y prueba.

http://forums.fivetechsupport.com/viewtopic.php?f=6&t=18909&hilit=Skin
http://forums.fivetechsupport.com/viewtopic.php?f=3&t=23138&hilit=skin+dialog

saludos!

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Thu Mar 30, 2017 1:07 pm
by cnavarro
Has probado con la clausula ON MOVE en el ACTIVATE ?

Code: Select all  Expand view

      ON MOVE oDlgPrg:Move(oVent:nVertRes()-465, oVent:nHorzRes()-400)
 

Re: Mantener fijo un dialogo NOMODAL

PostPosted: Fri Mar 31, 2017 1:23 am
by nanoespinoza
Gracias Cristobal; su solución es bastante cercana a lo que buscaba. Solo se genera un efecto un poco molesto al intentar mover el dialogo con el ratón, pero es algo a lo que uno puede acostumbrarse.

Reitero, mil gracias.