Ajuda com GTWVW
Moderador: Moderadores
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW
Bom dia,
Uso o comando abaixo pra gerar a janela principal do sistema:
nCurWindow := WVW_nOpenWindow( '', 00, 00, ScreenWidth, ScreenHeight, WS_CAPTION|WS_MINIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZE, -1 )
Quando informo -1 no ultimo parametro, cria duas telas;
Quando informo 1 no ultimo parametro, mostra uma mensagem de erro : Invalid Parent Window. Ao sair da mensagem, abre o sistema normalmente e não gera a segunda tela, somente uma. E isso, é exatamente o que preciso.
Olhando no fonte da GTWVW, na linha onde é gerada a mensagem de erro, fiquei confuso, não sou "expert" em C, mas conforme a definição do comando para o ultimo parametro:
*nParentWin is parent window of the new on we're about to open.
* default is: current window (in Standard Mode)
* last window (in MainCoord Mode)
* If you want the new window to not have parent,
* pass -1 as nParentWin.
*
Se entendi correto, o -1 não abriria a segunda janela, mas abre. Se passo 1, mostra a mensagem de erro:
if (iParentWin > (INT)s_pWvwData->s_usNumWindows-1)
{
MessageBox( NULL, TEXT("Invalid Parent Window"),
"Error", MB_ICONERROR );
hb_retni( 0 );
return;
}
Pensei em alterar e não mostrar mais a mensagem, porque não fica legal toda vez que abrir o sistema, mostrar mensagem de erro. Algum colega pode me ajudar com a rotina e a nova compilação da GTWVW?
Agradeço pela ajuda,
Luiz Augusto
Penha - SC
Uso o comando abaixo pra gerar a janela principal do sistema:
nCurWindow := WVW_nOpenWindow( '', 00, 00, ScreenWidth, ScreenHeight, WS_CAPTION|WS_MINIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZE, -1 )
Quando informo -1 no ultimo parametro, cria duas telas;
Quando informo 1 no ultimo parametro, mostra uma mensagem de erro : Invalid Parent Window. Ao sair da mensagem, abre o sistema normalmente e não gera a segunda tela, somente uma. E isso, é exatamente o que preciso.
Olhando no fonte da GTWVW, na linha onde é gerada a mensagem de erro, fiquei confuso, não sou "expert" em C, mas conforme a definição do comando para o ultimo parametro:
*nParentWin is parent window of the new on we're about to open.
* default is: current window (in Standard Mode)
* last window (in MainCoord Mode)
* If you want the new window to not have parent,
* pass -1 as nParentWin.
*
Se entendi correto, o -1 não abriria a segunda janela, mas abre. Se passo 1, mostra a mensagem de erro:
if (iParentWin > (INT)s_pWvwData->s_usNumWindows-1)
{
MessageBox( NULL, TEXT("Invalid Parent Window"),
"Error", MB_ICONERROR );
hb_retni( 0 );
return;
}
Pensei em alterar e não mostrar mais a mensagem, porque não fica legal toda vez que abrir o sistema, mostrar mensagem de erro. Algum colega pode me ajudar com a rotina e a nova compilação da GTWVW?
Agradeço pela ajuda,
Luiz Augusto
Penha - SC
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Já tentou usar o parâmetro correto ?
o parâmetro é uma indicação de janela, ou indica -1 pra ser livre ou indica o handle de uma janela existente.
Indicou 1 porque? existe a janela com handle 1 ?
E WVW tem manual, inclusive o único disponível em português:
https://harbour.github.io/doc/pt-br/gtw ... openwindow
o parâmetro é uma indicação de janela, ou indica -1 pra ser livre ou indica o handle de uma janela existente.
Indicou 1 porque? existe a janela com handle 1 ?
E WVW tem manual, inclusive o único disponível em português:
https://harbour.github.io/doc/pt-br/gtw ... openwindow
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/
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/
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW
Obrigado por responder Quintas,
Na verdade minha tela é a 0(zero), janela principal do sistema. Acontece que se colocar -1, cria duas telas, uma com todas as informações do sistema e outra em branco, quando coloco -1 ou se não coloco nada no parametro. Agora, se coloco 1, não cria a segunda tela, mas mostra a mensagem de erro, e mesmo mostrando a mensagem, o sistema funciona normal.
Luiz
Na verdade minha tela é a 0(zero), janela principal do sistema. Acontece que se colocar -1, cria duas telas, uma com todas as informações do sistema e outra em branco, quando coloco -1 ou se não coloco nada no parametro. Agora, se coloco 1, não cria a segunda tela, mas mostra a mensagem de erro, e mesmo mostrando a mensagem, o sistema funciona normal.
Luiz
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Na verdade você já tem janela a janela default, mas mesmo assim está criando outra.luiz augusto escreveu:Na verdade minha tela é a 0(zero), janela principal do sistema.
Acontece que se colocar -1, cria duas telas, uma com todas as informações do sistema e outra em branco
Por acaso indicou -gui ? se não indicar vai aparecer a janela do console, será que não é essa é problema?
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/
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/
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW
Quintas escreveu:
Por acaso indicou -gui ? se não indicar vai aparecer a janela do console, será que não é essa é problema?
Uso xbuildw.exe pra compilar meus sistemas, em xharbour, este em particular é modo console com gtwvw.
Informei -gui na compilação e -1 no parametro e continua aparecendo a segunda tela. Se colocar 1 no parametro, não mostra a segunda tela mas mostra a mensagem de erro. Só vejo uma maneira de resolver isso, alterar no fonte da gtwvw e recompilar.
/*
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}
*/
dai não mostra a mensagem e nem a segunda tela.
Luiz
Por acaso indicou -gui ? se não indicar vai aparecer a janela do console, será que não é essa é problema?
Uso xbuildw.exe pra compilar meus sistemas, em xharbour, este em particular é modo console com gtwvw.
Informei -gui na compilação e -1 no parametro e continua aparecendo a segunda tela. Se colocar 1 no parametro, não mostra a segunda tela mas mostra a mensagem de erro. Só vejo uma maneira de resolver isso, alterar no fonte da gtwvw e recompilar.
/*
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}
*/
dai não mostra a mensagem e nem a segunda tela.
Luiz
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
É que está querendo deixar sem a janela principal, esse é o problema.
Porque não pode ser a própria janela principal como abertura?
Outra opção:
Criar só a primeira janela como GTWVG, e deixar invisível, uma Main() invisível.
PROCEDURE HB_GTSYS
REQUEST HB_GTWVG_DEFAULT
RETURN
Não use em Main() nem setmode(), nem nada que use tela.
E caso feche sozinha:
PROCEDURE Main()
....
hb_TheadWaitForAll()
Porque não pode ser a própria janela principal como abertura?
Outra opção:
Criar só a primeira janela como GTWVG, e deixar invisível, uma Main() invisível.
PROCEDURE HB_GTSYS
REQUEST HB_GTWVG_DEFAULT
RETURN
Não use em Main() nem setmode(), nem nada que use tela.
E caso feche sozinha:
PROCEDURE Main()
....
hb_TheadWaitForAll()
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Só explicando melhor:
A GTWVW abre... pronto tá lá a janela principal
Aí cria uma nova janela... ficam duas.
Se não tiver janela principal... talvez o aplicativo feche sozinho.
A GTWVG, é porque conheço, ela pode ser a janela principal e ficar escondida.
Se não usar multithread, sem problemas.
Se usar multithread, talvez fecha sozinha tudo, por isso o hb_ThreadWaitForAll, somente SE acontecer isso.
Tá querendo usar diferente... acaba precisando de alternativas diferentes.
A GTWVW abre... pronto tá lá a janela principal
Aí cria uma nova janela... ficam duas.
Se não tiver janela principal... talvez o aplicativo feche sozinho.
A GTWVG, é porque conheço, ela pode ser a janela principal e ficar escondida.
Se não usar multithread, sem problemas.
Se usar multithread, talvez fecha sozinha tudo, por isso o hb_ThreadWaitForAll, somente SE acontecer isso.
Tá querendo usar diferente... acaba precisando de alternativas diferentes.
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/
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/
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW
Bom dia Quintas,
Não quero usar diferente, o que eu quero é desabilitar o button - ( minimizar ) e maximizar e o X da saida( esse eu consegui ), usando estes comandos:
// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )
// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )
Para o minimizar não achei como fazer; mas o comando WVW_nOpenWindow() faz isso, o unico inconveniente é a mensagem de erro que aparece quando abro o sistema.
É isso,
{}´s
Luiz
Não quero usar diferente, o que eu quero é desabilitar o button - ( minimizar ) e maximizar e o X da saida( esse eu consegui ), usando estes comandos:
// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )
// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )
Para o minimizar não achei como fazer; mas o comando WVW_nOpenWindow() faz isso, o unico inconveniente é a mensagem de erro que aparece quando abro o sistema.
É isso,
{}´s
Luiz
Ajuda com GTWVW
Código: Selecionar todos
*********************************************************
FUNCTION AbreJanela( cTitulo, nLI, nCI, nLF, nCF, nTipo )
*********************************************************
local nWin
default nTipo to WS_CAPTION
if ( nWin := WVW_nOpenWindow( cTitulo, nLI, nCI, nLF, nCF, nTipo ) ) == 0
Alerta("Erro na criacao da janela " + cTitulo+;
'Favor verificar o tamanho da resolucao da Tela!'+;
'Linha Final:'+str(nLF,11))
return 0
endif
RETURN nWin
//
// FUNCAO : FechaJanela()
// PARAMETROS : -
// DESCRICAO : Jeito diferente de chamar WVW_lCloseWindow()
// RETORNO : .T. se conseguiu fechar janela, caso contrario .F.
//
**********************
FUNCTION FechaJanela()
**********************
RETURN WVW_lCloseWindow()- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Só assim
Compilar usando hbmk2 arquivo.hbp gtwvg.hbc gtwvw.hbc
Código: Selecionar todos
PROCEDURE MAIN
WVW_NOpenWindow( "teste", 0, 0, 24, 79 )
@ 3, 3 SAY "ola mundo"
Inkey(0)
wvw_lCloseWindow()
PROCEDURE HB_GTSYS
REQUEST HB_GT_WVG_DEFAULT
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Assim não vai:
Código: Selecionar todos
PROCEDURE MAIN
WVW_NOpenWindow( "teste", 0, 0, 24, 79 )
@ 3, 3 SAY "ola mundo"
Inkey(0)
wvw_lCloseWindow()
PROCEDURE HB_GTSYS
REQUEST HB_GT_WVW_DEFAULT
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Ajuda com GTWVW
Corrigindo:
Em nenhum dos dois casos.
O nome na janela sugere que com GTWVG a GTWVW não funcionou.
Em nenhum dos dois casos.
O nome na janela sugere que com GTWVG a GTWVW não funcionou.
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/
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/
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW
Boa tarde,
Obrigado pelas respostas, mas nada funcionou, porém, se alguem puder alterar as linhas abaixo na GTWVW.C e recompilar a lib, dai, vai resolver.
Alterar aqui:
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}
Grato,
Luiz
Obrigado pelas respostas, mas nada funcionou, porém, se alguem puder alterar as linhas abaixo na GTWVW.C e recompilar a lib, dai, vai resolver.
Alterar aqui:
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}
Grato,
Luiz
-
luiz augusto
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 22 Jul 2019 11:37
- Localização: Penha/SC
Ajuda com GTWVW - RESOLVIDO
Boa tarde,
Depois de muita pesquisa( tentativa erros e acertos ), finalmente consegui resolver o problema, das duas telas e dos buttons minimize, maximize e cancel( button X ), como segue:
- Não usar o comando WVW_nOpenWindow( cTitulo, nLI, nCI, nLF, nCF, nTipo ), porque ele abre a segunda janela;
- Abaixo a configuração correta:
nCurWindow := WVW_nNumWindows()-1 // == 0, Main Window
// não deixa fechar sua aplicação com ALT+F4
WVW_SetAltF4Close( .f. )
// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )
WVW_Maximize( nCurWindow )
// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )
// Con titulo, sin X ni Menu
WVW_SetWinStyle( nCurWindow, DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION )
WVW_SetTitle( 0, "Titulo do sistema" )
Utilizando desta forma, abre somente a janela principal, sem os buttons.
Boa Semana,
Luiz Augusto
Depois de muita pesquisa( tentativa erros e acertos ), finalmente consegui resolver o problema, das duas telas e dos buttons minimize, maximize e cancel( button X ), como segue:
- Não usar o comando WVW_nOpenWindow( cTitulo, nLI, nCI, nLF, nCF, nTipo ), porque ele abre a segunda janela;
- Abaixo a configuração correta:
nCurWindow := WVW_nNumWindows()-1 // == 0, Main Window
// não deixa fechar sua aplicação com ALT+F4
WVW_SetAltF4Close( .f. )
// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )
WVW_Maximize( nCurWindow )
// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )
// Con titulo, sin X ni Menu
WVW_SetWinStyle( nCurWindow, DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION )
WVW_SetTitle( 0, "Titulo do sistema" )
Utilizando desta forma, abre somente a janela principal, sem os buttons.
Boa Semana,
Luiz Augusto
