Categoria:
O código abaixo compila no harbour 3.2 com windows 10, porém não assume o mouse do windows:
#include "inkey.ch" Function Main() SET EVENTMASK TO HB_INKEY_ALL While LastKey() != K_ESC Clear Screen DispBox( 0, 1, 2, MaxCol(), Nil, "GR+/N" ) DispBox( 3, 1, MaxRow(), MaxCol(), Nil, "G+/N" ) @ 1,3 PROMPT "Finalizar" @ 1,16 PROMPT "Ag.financeira" @ 1,32 PROMPT "Contas bancárias" @ 1,52 PROMPT "Telefones" @ 1,66 PROMPT "Compromissos" MENU TO OPC If MRow() != 1 Loop ElseIf LastKey() != K_ESC Alert( "Você clicou na opção: " + Hb_NToS( opc ) ) InKey(5) EndIf EndDo Return Nil
Agora, acrescentando um REQUEST HB_GT_WVT_DEFAULT, aceita o mouse no windows 10:
#include "inkey.ch" REQUEST HB_GT_WVT_DEFAULT Function Main() SET EVENTMASK TO HB_INKEY_ALL While LastKey() != K_ESC Clear Screen DispBox( 0, 1, 2, MaxCol(), Nil, "GR+/N" ) DispBox( 0, 1, 2, MaxCol(), Nil, "GR+/N" ) @ 1,3 PROMPT "Finalizar" @ 1,16 PROMPT "Ag.financeira" @ 1,32 PROMPT "Contas bancárias" @ 1,52 PROMPT "Telefones" @ 1,66 PROMPT "Compromissos" MENU TO OPC If MRow() != 1 Loop ElseIf LastKey() != K_ESC Alert( "Você clicou na opção: " + Hb_NToS( opc ) ) InKey(5) EndIf EndDo Return Nil
E por fim, acrescentando as opções de HBInfo dá para ajustar as acentuações e localização:
#include "inkey.ch" /* HBGTInfo para maior controle do console */ #include "hbgtinfo.ch" /* Mudando o padrão WIN (console antigo) para WVT (console após o Windows Vista - acho) */ REQUEST HB_GT_WVT_DEFAULT /* Os REQUEST abaixo servem para carregar os detalhes da lingagem e página de códigos */ REQUEST HB_LANG_PT REQUEST HB_CODEPAGE_UTF8 Function Main() /* Chamando a linguagem previamente requisitada e a página de códigos */ HB_LANGSELECT('PT') HB_CDPSELECT('UTF8') /* Opções de HBGTInfo */ HB_GtInfo( HB_GTI_MAXIMIZED, .F. ) HB_GtInfo( HB_GTI_FONTNAME, "Lucida Console" ) HB_GtInfo( HB_GTI_WINTITLE, "Teste para Mouse" ) /* Fim de opções de HBGTInfo */ SET EVENTMASK TO HB_INKEY_ALL While LastKey() != K_ESC Clear Screen DispBox( 0, 1, 2, MaxCol(), Nil, "GR+/N" ) DispBox( 3, 1, MaxRow(), MaxCol(), Nil, "G+/N" ) @ 1,3 PROMPT "Finalizar" @ 1,16 PROMPT "Ag.financeira" @ 1,32 PROMPT "Contas bancárias" @ 1,52 PROMPT "Telefones" @ 1,66 PROMPT "Compromissos" MENU TO OPC If MRow() != 1 Loop ElseIf LastKey() != K_ESC Alert( "Você clicou na opção: " + Hb_NToS( opc ) ) InKey(5) EndIf EndDo Return Nil
O Harbour funciona em pelo menos três contextos HB_GT:
1. HB_GT_WIN, que trabalha com os padrões do console (CMD) tipo DOS e Windows até XP);
2. HB_GT_WVT, que trabalha com os consoles (CMD) dos WIndows modernos;
3. HB_GT_GUI, para interfaces gráficas tipo janelas.
Por padrão, se não usar REQUEST HB_GT_xxx, o compilador carrega o contexto HB_GT_WIN, por isso há problemas com mouse nos Windows modernos.
Compilando com IDEs HMG, provavelmente a IDE assuma automaticamente o contexto HB_GT_WVT no modo console, e HB_GT_GUI para modo janelas.
Comentários recentes