Bom dia,
Tenho a seguinte dúvida:
1. Janela principal com os menus. Seleciona menu cadastro de usuários.
2. Abre uma janela com browse dos usuarios ja cadastrado e 2 botoes para Incluir / Excluir.
3. selecionada uma das opçoes abre-se uma terceira janela para Inlcuir ou alterar os dados.
Se clico na area visivel da segunda o foco fica na segunda, se clico na area da primeira o foco fica na primeira, etc..
O foco que agora esta na primeira eu só consigo voltar para terceira com o Mouse !!
Como mudar o foco sem usar o mouse ( usando talvez uma combinação de tecla Sifth+Tab por ex. ), ou impedir a perda do foco da terceira que estou editando??
Compliquei??
Grato pela orientação.
cez_a@ubi.com.br
Muda o foco entre janelas XH+GTWVW ??
Moderador: Moderadores
Se eu entendi você quer que o foco se mantenha na terceira janela (a mais recente), e caso o usuário clique numa janela atraz, o foco volte automaticamente para a janela atual?
Veja esse exemplo:
Nesse exemplo utilizei o timer da janela para manter o foco, ao fechar a janela, é ligado o timer da janela anterior.
Veja esse exemplo:
Código: Selecionar todos
procedure main
private nWin1,nWin2
nWin1:=wvw_nOpenWindow('janela1',05,05,10,30)
nWin2:=wvw_nOpenWindow('janela2',10,10,15,35)
wvw_settimer(nWin2,100)
inkey(0)
wvw_lCloseWindow()
wvw_settimer(nWin1,100)
inkey(0)
wvw_lCloseWindow()
inkey(0)
return
function wvw_timer()
local nWnd:=wvw_GetWindowHandle(WVW_nSetCurWindow())
Win_SetFocus(nWnd)
@ 0,0 say 'Janela Atual - '+Time()
return nil"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
O exemplo funciona beleza, porem encontrei uma forma melhor e que usa o recurso de foco da própria gtwvw.
Basta adicionar essa função no programa:
A função wvw_setfocus é chamada automaticamente pelo gtwvw quando o foco de uma janela muda.
Basta adicionar essa função no programa:
Código: Selecionar todos
FUNCTION WVW_SetFocus( hWnd, nWinNum )
local nHnd:=wvw_getwindowhandle(wvw_nsetcurwindow())
if nWinNum==0
return NIL
endif
win_setfocus(nHnd)
RETURN nil"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
Bom dia Luiz,
Muito inteligente essa sua nova solução!
Me ocorreu agora; que, talvez, sua solução também poderia ser usada para interceptar o fechamento da janela prinicipal "X" ??
Pelas coordenadas do mouse ??
Muito grato, tem nos ajudado muito.
cez_a@ubbi.com.br
Muito inteligente essa sua nova solução!
Me ocorreu agora; que, talvez, sua solução também poderia ser usada para interceptar o fechamento da janela prinicipal "X" ??
Pelas coordenadas do mouse ??
Muito grato, tem nos ajudado muito.
cez_a@ubbi.com.br
Boa tarde,
Testei a sua ideia do wvw_setfocus( ), e o resultado é que fica em loop!
cez_a@ubbi.com.br
Testei a sua ideia do wvw_setfocus( ), e o resultado é que fica em loop!
cez_a@ubbi.com.br
Os 2 exemplos são distintos, sendo que o segundo (wvw_setfocus) é nativo do próprio gtwvw, aqui funcionou blz evitando que a janela perca o foco.
"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE

