La Web del Programador: Comunidad de Programadores
 
    Pregunta:  21208 - CENTRAR VENTANAS AUTOMATICAMENTE
Autor:  RAUL FLORES
Hola a Todos,

Necesito Saber alguna forma de Centrar Automaticamente las Ventanas que Despliega mi aplicación, pues siempre las pone en la Esquina Superior Izquiera, a no ser que las maximize, pero creo que esto último le da un aspecto menos estético.

Por su apoyo, mil gracias.

  Respuesta:  Hugo Contreras
Este es el código para hecerlo:
*******************************************************************************
int li_ancho, li_alto, li_anchoP, li_altoP
environment ambiente

if not IsValid(aw_padre) then return

GetEnvironment ( ambiente )

li_anchoP = int ( PixelsToUnits ( ambiente.ScreenWidth, XPixelsToUnits! ) / 2 )
li_altoP = int ( PixelsToUnits ( ambiente.ScreenHeight, YPixelsToUnits! ) / 2.5 )
li_ancho = int ( aw_padre.WorkSpaceWidth () / 2 )
li_alto = int ( aw_padre.WorkSpaceHeight () / 2 )

aw_padre.move (li_anchoP - li_ancho, li_altoP - li_alto )
*******************************************************************************
Donde aw_padre es el argumento tipo window que se pasa por referencia con el nombre de la ventana que estas abriendo. Esto lo pyuedes hacer en el open de tu ventana

  Respuesta:  robinson cano huarcaya
solo se pone :
windows_1.x=200
windows_1.y=300
pones exactamente las coordenadas donde deseas que salga

  Respuesta:  Alex Miños
Primero definite una variable global:
Environment io_env

Despues en el scritp de la aplicacion pones esto:
GetEnvironment (io_env)

Despues te definis una funcion global y le pases como parametro la ventana a la cual queres centrar.
Este es el codigo de la funcion:

double ld_PBwidth, ld_PBheight

ld_PBwidth = PixelsToUnits(io_env.screenwidth, XPixelsToUnits!)
ld_PBheight = PixelsToUnits(io_env.screenheight, YPixelsToUnits!)

pw_window.X = ((ld_PBwidth - pw_window.width) / 2)
pw_window.Y = ((ld_PBheight - pw_window.height) / 2)

Ejemplo de llamada a la funcion desde el open de una ventana.
Supongamos que la funcion se llame asi.
f_window_center(this)

  Respuesta:  Juanma Fdez Perelló
Te sugiero que pongas la ventana maximizada,
cuando esté maximizada leas los vales height y width,
Vuelve a poner la ventana restaurada al tamaño original
Y luego pon el x de la ventana a (anchomaximizado - ancho) / 2
Y el y de la ventana a (altomaximizado - alto) / 2

El problema es que esto puede que haga parpadear tu ventana. Procura ocultarla de alguna forma.