Page 1 of 1

Foco entre Ventanas y Dialogos

Posted: Tue Apr 24, 2007 10:01 am
by Mike Serra
Buenos días foro.

Tengo un problemita que no se resolver, es el siguiente: tengo una opcion en el menu que me abre una ventana y dentro de esa ventana tengo un browse con los clientes. Si hago doble click sobre un cliente me abre un dialogo para modificar el cliente. el problema está en que estando abierto el dialogo para modificar el cliente, si pulso sobre el menu sobre proveedores, que tiene otra ventana con otro browse, esta me aparece por detras del dialogo de clientes, y me gustaria que no fuese así, es decir, que la ventana fuese lo primero y el dialogo se quedara por detrás. Espero haberme explicado bien. He probado con clausulas NOWAIT, etc. . .pero no me funciona.

MUCHAS GRACIAS de ANTEMANO.

Posted: Tue Apr 24, 2007 12:21 pm
by Antonio Linares
Mike,

Usa la claúsula OF para determinar el padre de una ventana ó diálogo:

DEFINE WINDOW oWnd2 OF oWnd

...

DEFINE DIALOG oDlg OF oWnd // ó OF oWnd2

Posted: Tue Apr 24, 2007 3:08 pm
by Mike Serra
Antonio, ya lo he hecho, pero sigue exactamente igual. ¿Tendría que redefinir el dialogo con algunas propiedades? Uso MS-C++.

La estructura es:

Ventana Principal (oWnd)
Ventana Clientes (oWnd2) OF oWnd ----> Dialogo Clientes OF oWnd2
Ventana Proveedores (oWnd3) OF oWnd

Cuando el dialogo Clientes está activo, si pulso sobre proveedores no sale la primera, sigue estando el dialogo Clientes en primer plano sin el foco, porque eso si, la ventana de proveedores es la que tiene el foco.

Posted: Tue Apr 24, 2007 6:48 pm
by Antonio Linares
Mike,

Ese comportamiento que describes es normal, ya que el diálogo pertenece a oWnd2 y no a oWnd3.

De todas formas puedes solucionarlo haciendo oWnd3:Disable() antes de llamar al diálogo y haciendo oWnd3:Enable() despues de salir del diálogo