Página 1 de 3
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 17:41
por asimoes
Prezados,
Tem como expandir a tela de um sistema compilador com harbour 3.4 para "desktop area" usando GTWVG?
Só estou conseguindo com o GT GTWVT
Ex.:

- Com REQUEST HB_GT_WVT_DEFAULT

- Exemplo 2
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 20:16
por Jairo Maia
Olá Alexandre,
Essa também é uma coisa que persigo há algum tempo com a WVG. Uso uma
"gambiarra", e ajusto a medida que vai surgindo novas resoluções. Veja se esse exemplo simples ajuda em algo:
Código: Selecionar todos
/*
Compilar usando hbmk2 exemplo.prg -gtwvg -gui
*/
//#include "wvtwin.ch" // acho que em 3.4 é "wvtwin.ch"
#include "hbgtinfo.ch"
Function Main()
Clear Screen
Wvt_SetGui( .t. )
SetMode( 28, 91 ) // ajuste aqui a melhor resolução
SetColor( "GR+/N" )
DispBox( 0, 0, MaxRow(), MaxCol(), Nil )
ConfTela()
Inkey(0)
Return Nil
Func ConfTela() // ajusta tamanho da tela
Local nWidth := Hb_GtInfo(HB_GTI_DESKTOPWIDTH)
Local nHeight := Hb_GtInfo(HB_GTI_DESKTOPHEIGHT)
If nWidth = 1024 .And. nHeight = 768
Wvt_SetFont( "Lucida Console", 28, 12, 0 )
ElseIf nWidth = 1152 .And. nHeight = 864
Wvt_SetFont( "Lucida Console", 31, 13, 0 )
ElseIf nWidth = 1280 .And. nHeight = 600
Wvt_SetFont( "Lucida Console", 21, 15, 0 )
ElseIf nWidth = 1280 .And. nHeight = 720
Wvt_SetFont( "Lucida Console", 26, 15, 0 )
ElseIf nWidth = 1280 .And. nHeight = 768
Wvt_SetFont( "Lucida Console", 28, 15, 0 )
ElseIf nWidth = 1280 .And. nHeight = 960
Wvt_SetFont( "Lucida Console", 35, 15, 0 )
ElseIf nWidth = 1280 .And. nHeight = 1024
Wvt_SetFont( "Lucida Console", 38, 15, 0 )
ElseIf nWidth = 1400 .And. nHeight = 1050
Wvt_SetFont( "Lucida Console", 39, 16, 0 )
Else // se nenhuma anterior, seta padrao
Wvt_SetFont( "Lucida Console", 28, 12, 0 )
EndIf
Wvt_Maximize()
Return Nil
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:00
por JoséQuintas
Eu uso só a função que postei GTSetupFont().
Quem decide depois é o usuário. Acho que assim fica simples e prático.
Do jeito que ele deixar, é do jeito que volta, só vai precisar do mouse pra isso.
Uma coisa da GTWVG é a seguinte:
Se estiver configurado pra alguma coisa que não cabe na tela, ela reseta para a configuração padrão.
Talvez tenha uma gabiarra mais simples:
Fazer um cálculo direto dividindo a resolução pelas linhas/colunas pra chegar no tamanho do fonte.
E tem o detalhe que mencionei em outro post: tem a hora certa pra alterar a configuração, não pode ser em qualquer hora.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:18
por JoséQuintas
Ou um jeito relativamente simples:
Com isso o usuário pode clicar no maximizar.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:21
por JoséQuintas
Sobre o tópico:
Não sei se é boa idéia cobrir o iniciar do Windows.
Se for o caso, talvez configurar o Windows pra "ocultar a barra de ferramentas automaticamente".
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:24
por Jairo Maia
JoséQuintas escreveu:Ou um jeito relativamente simples: hb_gtInfo( HB_GTI_MAXIMIZED, .T. ) Com isso o usuário pode clicar no maximizar.
Sim José, mas a questão é como iniciar o sistema em tela cheia com WVG sem interferência do usuário.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:28
por Jairo Maia
JoséQuintas escreveu:Não sei se é boa idéia cobrir o iniciar do Windows.
Mas a idéia não é essa. É obter um efeito idêntico ao da GTWVT usando o comando que você colocou acima. Com GTWVT funciona, mas com GTWVG não funciona. A idéia é fazer a tela tomar a área do DeskTop, ficando a barra do Windows disponível (como com GTWVT).
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:35
por JoséQuintas
Tentei por API, altera a janela mas não altera o conteúdo.
Código: Selecionar todos
wapi_ShowWindow( wvgSetAppWindow():hWnd, SW_SHOWMAXIMIZED )
Talvez se conseguir enviar a "mensagem" pelo Windows, pra maximizar.
Vou testar mais algumas coisas.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:40
por JoséQuintas
aqui foi:
Código: Selecionar todos
PROCEDURE Main
SetMode(30,100)
SetColor("W/B")
CLS
wvgSetAppWindow():sendMessage( WIN_WM_SYSCOMMAND, WIN_SC_MAXIMIZE, 0 )
@ 12, 30 SAY "OLA"
Inkey(0)
RETURN
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:47
por JoséQuintas
Só como anotação de como cheguei nisso:
Primeiro pesquisei API do WIndows no google... rs
Depois pesquisei MAXIMIZE nos fontes da gtwvg e apareceu isso.
Como sendmessage está com indicação de função interna ::SendMessage, testei direto na janela da GTWVG wvgSetAppWindow():SendMessage() e deu certo.
Tem horas que é no chute... baseado em alguma coisa... rs
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 21:54
por JoséQuintas
Só um detalhe, que consta em hbgtinfo.ch
Código: Selecionar todos
#define HB_GTI_ALTENTER 62 /* Toggles Alt+Enter as full screen switch (supported by: GTWVT) */
#define HB_GTI_ISFULLSCREEN 63 /* Is the GT windows using the full physical display? (supported by: GTWIN, GTWVT) */
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 22:01
por JoséQuintas
Quanto à gtwvg usar toda tela, o ajuste automático dela não deixa, porque sempre que vai ultrapassar um limite ela retorna ao default.
Mesmo ocultando a barra do iniciar.
Só resta tentar encontrar aonde desativar o ajuste automático, e deixar totalmente manual.
No meu caso deixo como falei, porque os usuários sempre tem mais aplicativos em uso.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 22:32
por JoséQuintas
Acho que a solução disso estaria por aqui:
nesta parte
Código: Selecionar todos
if( pWVT->bMaximized )
{
if( ! SystemParametersInfo( SPI_GETWORKAREA, 0, &wi, 0 ) )
return HB_FALSE;
maxHeight = wi.bottom - wi.top - borderHeight;
maxWidth = wi.right - wi.left - borderWidth;
left = 0;
top = 0;
}
Isso fica em gtwvgd.c
Um primeiro teste seria retirar essa subtração de borda.
Não sei se essa borda é a borda da janela, ou se é justamente a borda do desktop.
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 22:47
por JoséQuintas
O que eu tentei mexer foi no espacejamento vertical do texto.
Até consegui o espacejamento, mas....
GTWVG - Expandir a tela para Área do Desktop
Enviado: 20 Dez 2015 22:59
por JoséQuintas
Sobre o espacejamento, tentei há dois anos atrás, mas para manter compatibilidade com outras GTs... NÃO
Não sei exatamente que compatibilidade é essa.
It is possible only if we want to compromise the compatibility with other GTs
and also rewrite the whole engine. So my answer is NO.
https://groups.google.com/forum/#!topic ... RhvPGGJqts
Talvez ocupar toda a tela não seja algo que cause compatibilidade, e o Pritpal possa fazer.
Fiz testes aqui mas não foi.
Essa é a parte chata.
Todos os fontes na mão, mas alterar aonde?