Foco entre Ventanas y Dialogos

Post Reply
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Foco entre Ventanas y Dialogos

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply