Cordenadas en pixeles diferentes en Windows y en Dialogs

Post Reply
User avatar
creswinman
Posts: 33
Joined: Thu Aug 24, 2006 3:14 am
Location: mexico
Contact:

Cordenadas en pixeles diferentes en Windows y en Dialogs

Post by creswinman »

¿ Porque Dialogo realizado sin recursos al pasarlo a Ventata (o Viceversa)
cambia sus posiciones y dimensiones en los controles que contiene?

como si cada pixel de una window equivaliese a 2 en un dialogo

:shock: :cry:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Ignacio,

Es un comportamiento propio de Windows, ya que con las ventanas usa pixeles, pero con los diálogos usa "unidades base de diálogo" que calcula en base a GetDialogBaseUnits().

Si revisas la documentación de GetDialogBaseUnits() encontrarás una explicación de como calcular, más ó menos, de unas a otras.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
creswinman
Posts: 33
Joined: Thu Aug 24, 2006 3:14 am
Location: mexico
Contact:

Post by creswinman »

Pues creo que ese comportamiento natural de Windows solo genera problemas.....

Se puede corregir en el Metodo Initiate de la TDialog si al final ponemos...

AEVAL( ::aControls, { | o , n | IF( o:ClassName()=="TIMAGE" .OR.
o:ClassName()=="TBITMAP" , ;
o:Move( o:nTop/2 , o:nLeft/2 , 0 , 0 , .T. ) , ;
o:Move( o:nTop/2 , o:nLeft/2 , o:nWidth/2 , o:nHeight/2,.T. ) ) } )
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Ignacio,

> Pues creo que ese comportamiento natural de Windows solo genera problemas.....

Sí, es cierto.

> Se puede corregir en el Metodo Initiate de la TDialog si al final ponemos...

Pero a estas alturas romperíamos las aplicaciones de muchos usuarios...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply