GTWVG - Expandir a tela para Área do Desktop

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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
Com REQUEST HB_GT_WVT_DEFAULT
Exemplo 2
Exemplo 2
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem por JoséQuintas »

Ou um jeito relativamente simples:

Código: Selecionar todos

   hb_gtInfo( HB_GTI_MAXIMIZED, .T. )
Com isso o usuário pode clicar no maximizar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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".
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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).
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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
maximize.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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) */
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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.
iniciar.png
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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem por JoséQuintas »

Acho que a solução disso estaria por aqui:

Código: Selecionar todos

static HB_BOOL hb_gt_wvt_FitSize( PHB_GTWVT pWVT )
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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem por JoséQuintas »

O que eu tentei mexer foi no espacejamento vertical do texto.
Até consegui o espacejamento, mas....
wvglinespaceing.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

GTWVG - Expandir a tela para Área do Desktop

Mensagem 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?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder