Num primeiro momento é acrescentar gtwvg.hbc na compilação.
Provavelmente vai precisar de uma rotina de erros que salve em disco ao invés de mostrar na tela, porque janela windows se fecha ao finalizar o programa.
1) Funções WVT - o chamado modo CUI
Eu considero mais complicado.
É usar uma rotina WVT_PAINT no aplicativo pra ficar repintando a cada atualização de tela
Por ser rotina única pro aplicativo inteiro, os exemplos mostram como criar um array com comandos, e ficar trocando o array a cada troca de tela
Pra entender melhor: é como se fosse uma rotina rodando a cada 1 segundo pra desenhar na tela o que estiver na lista.
E no fonte precisa controlar aonde foi feito clique do mouse.
2) Controles WVG - API Windows
É no estilo de biblioteca gráfica.
É o contrário do anterior: criou um button, ele vai ficar na tela até o aplicativo terminar ou até que seja removido.
E o mais prático é configurar pro button executar um KEYBOARD, assim seu fonte continua o mesmo de antes.
Importante aqui: biblioteca gráfica utiliza várias janelas. Se usar janelas, ao fechar janela o button será destruído. Se ficar reutilizando a mesma janela, vai destruir manualmente o button. (ou apenas esconder).
Tem lá no programa, pro usuário digitra I, A, E pra inclui, altera, exclui:
Pode criar três buttons, um pra fazer KEYBOARD "I", outro pra "A", outro pra "E".
Se o usuário clicar, seria o mesmo que estar apertando tecla, então não precisaria alterar mais nada no fonte, apenas criar os buttons.
Código: Selecionar todos
btnInclui := CreateButton( 5, 5, 5, 5, "teste", Asc( "T" ) )
Código: Selecionar todos
FUNCTION CreateButton( nRow, nCol, nWidth, nHeight, cText, nKey )
oControl := wvgPushButton():New()
oControl:PointerFocus := .F.
oControl:SetCaption( cText )
oControl:Activate := { || hb_KeyPut( nKey ) }
oControl:Create( ,, {-nRow, -nCol },{-nWidth,-Height } )
RETURN oControl
Depois, se quiser destruir ou outros:
Código: Selecionar todos
btnInclui:Destroy()
btnInclui:Hide()
btnInclui:Show()
btnInclui:Enable()
btnInclui:Disable()
SetCaption() pode ser texto ou imagem, texto+imagem somente se seu EXE usar manifest - coisas da Microsoft.
exemplo pra imagem em resource:
Código: Selecionar todos
oControl:SetCaption( { , WVG_IMAGE_ICONRESOURCE, cSource } )