Problema con el teclado
Posted: Wed Dec 28, 2011 3:35 pm
Tengo el siguiente problema al recorrer el menú con el teclado la pantalla de la opción de prueba que corresponde a un dialogo, no recibe el foco.
En el menú queda Salir con AZUL y el boton CANCELAR no figura marcado con borde AZUL
En cambio al recorrerlo con el Mouse si pasa el foco al dialogo.
En el menú queda Salir sin AZUL y el boton CANCELAR figura marcado con borde AZUL
Adjunto aplicativo menu.prg
Se agradece cualquier ayuda.
#include "FiveLinux.ch"
Procedure Main(cOpcion0,cOpcion1)
Public oWnd_Principal,oMenu_Horizontal,oMenu_Vertical1,oMenu_Vertical2
DEFINE WINDOW oWnd_Principal TITLE hb_strtoutf8('PRUEBA DE MENU') SIZE 1024, 690
MENU oMenu_Horizontal
MENUITEM 'Horizontal 1'
MENU oMenu_Vertical1
MENUITEM 'Vertical 1' ACTION fAccion(1)
MENUITEM 'Vertical 2' ACTION fAccion(2)
ENDMENU
MENUITEM "Salir"
MENU oMenu_Vertical1
MENUITEM "Prueba" ACTION fAccion(3)
SEPARATOR
MENUITEM "Salir" ACTION fAccion(4)
ENDMENU
ENDMENU
oWnd_Principal:SetMenu(oMenu_Horizontal)
oWnd_Principal:Show()
msgalert('Inicio')
oMenu_Horizontal:SelItem( 1 )
ACTIVATE WINDOW oWnd_Principal
Return .T.
Function fAccion(nAccion)
do case
case nAccion=1
msgalert('Vertical 1')
case nAccion=2
msgalert('Vertical 2')
case nAccion=3
fDlg()
case nAccion=4
oWnd_Principal:End()
endcase
if nAccion<3
oMenu_Horizontal:SelItem( 1 )
else
oMenu_Horizontal:SelItem( 2 )
endif
Return .T.
Function fDlg()
DEFINE DIALOG oDlg
@2,5 say 'PRUEBA PRUEBA' of oDlg
@5,2 BUTTON oBtn1 PROMPT 'CANCELAR' ACTION oDlg:End()
@5,15 BUTTON oBtn2 PROMPT 'RETORNAR' ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER
Return .T.
En el menú queda Salir con AZUL y el boton CANCELAR no figura marcado con borde AZUL
En cambio al recorrerlo con el Mouse si pasa el foco al dialogo.
En el menú queda Salir sin AZUL y el boton CANCELAR figura marcado con borde AZUL
Adjunto aplicativo menu.prg
Se agradece cualquier ayuda.
#include "FiveLinux.ch"
Procedure Main(cOpcion0,cOpcion1)
Public oWnd_Principal,oMenu_Horizontal,oMenu_Vertical1,oMenu_Vertical2
DEFINE WINDOW oWnd_Principal TITLE hb_strtoutf8('PRUEBA DE MENU') SIZE 1024, 690
MENU oMenu_Horizontal
MENUITEM 'Horizontal 1'
MENU oMenu_Vertical1
MENUITEM 'Vertical 1' ACTION fAccion(1)
MENUITEM 'Vertical 2' ACTION fAccion(2)
ENDMENU
MENUITEM "Salir"
MENU oMenu_Vertical1
MENUITEM "Prueba" ACTION fAccion(3)
SEPARATOR
MENUITEM "Salir" ACTION fAccion(4)
ENDMENU
ENDMENU
oWnd_Principal:SetMenu(oMenu_Horizontal)
oWnd_Principal:Show()
msgalert('Inicio')
oMenu_Horizontal:SelItem( 1 )
ACTIVATE WINDOW oWnd_Principal
Return .T.
Function fAccion(nAccion)
do case
case nAccion=1
msgalert('Vertical 1')
case nAccion=2
msgalert('Vertical 2')
case nAccion=3
fDlg()
case nAccion=4
oWnd_Principal:End()
endcase
if nAccion<3
oMenu_Horizontal:SelItem( 1 )
else
oMenu_Horizontal:SelItem( 2 )
endif
Return .T.
Function fDlg()
DEFINE DIALOG oDlg
@2,5 say 'PRUEBA PRUEBA' of oDlg
@5,2 BUTTON oBtn1 PROMPT 'CANCELAR' ACTION oDlg:End()
@5,15 BUTTON oBtn2 PROMPT 'RETORNAR' ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER
Return .T.