Page 1 of 1

Posicion de dialogo en pantalla.

Posted: Fri Feb 16, 2007 9:08 am
by Biel EA6DD
Hola todos,

Tengo un diaolog creado desde recursos, existe alguna manera para recuperar su posicion acutal. Lo que necesito es que la siguiente vez que se abra el dialogo, aparezca en la ultima posicion donde lo habia movido el usuario.

Gracias anticipadas.

Posted: Fri Feb 16, 2007 9:38 am
by Antonio Linares
Biel,

Guarda oDlg:nTop y oDlg:nLeft y posteriormente asigna esos valores: oDlg:nTop = ... y oDlg:nLeft = ...

Posted: Fri Feb 16, 2007 10:41 am
by Biel EA6DD
Hola Antonio,
si eso fue lo que se me ocurrio incialmente, de hecho lo utilizo con ventanas, pero con dialogos me devuelve cero. Si le asigno el valor a nTop, ... ni caso. De la unica forma que puedo cambiar esos valores es con las funciones tipo WndTop, .... . Pero no consigo recuperar el valor de la posiciĆ³n actual.
Para mi los datas nTop, nLeft, siempre tienen valor cero en dialogos creados desde recurso por lo menos.

Posted: Fri Feb 16, 2007 2:01 pm
by Marcelo Via Giglio
Hola

usa aRect := GetWndRect( oDlg:hWnd ) para capturar las coordanas del dialog y luego en el creacion del dialogo ON INIT MoveWindow( oDlg:hWnd, aRect[1], aRect[2] )

espero sea lo que buscas

saludos

Marcelo

Posted: Fri Feb 16, 2007 2:15 pm
by Carles
Biel,

Code: Select all

ACTIVATE DIALOG oDlg ON INIT SetWindowPos( oDlg:hWnd, , nTop, nLeft, nWidth, nHeight )
Siau.
C.

Posted: Fri Feb 16, 2007 3:40 pm
by Biel EA6DD
Perfecto, ya lo tengo funcionando. Muchas gracias Marcelo y Carles. Era justo lo que necesitaba.

De hecho tenia la solucion delante y no me habia dado cuenta, WndTop, y WndLeft, sin parametro de posicion devuelve posiciĆ³n actual.


Gracias nuevamente.