Como ja relatei aqui, me utilizo ainda de CONSOLE e GUI, ou seja, conforme vou desenvolvendo a parte GUI, vou excluindo o CONSOLE, até ai beleza !!!
Aà para chamar as telas consoles, faço da seguinte forma:
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#Include 'minigui.ch'
#include 'inkey.ch'
REQUEST HB_GT_WVT
//--------------------------
FUNCTION CH_CONSOLE(b_Block)
//--------------------------
LOCAL zret
DEFINE WINDOW Trava;
AT 0,0 ;
WIDTH 100 HEIGHT 30;
TITLE '.Sagrio.';
MODAL;
NOSIZE;
NOSYSMENU;
ON GOTFOCUS FocarJanela('Sagrio');
ON INIT { || TravaSaida('Trava'), Jan_Console(b_Block,@zret) }
SetaTeclas('Trava')
ON KEY ALT+V OF Trava ACTION COLAR_ALT_V()
END WINDOW
CENTER WINDOW Trava
ACTIVATE WINDOW Trava
RETURN(zret)
//--------------------------
STATIC FUNCTION COLAR_ALT_V
//--------------------------
KEYBOARD( Hb_GtInfo( HB_GTI_CLIPBOARDDATA ) )
RETURN(NIL)
//---------------------------------------
STATIC FUNCTION Jan_Console(b_Block,_ret)
//---------------------------------------
LOCAL pGT, cFont
PRIVATE pNewGT
pNewGT := HB_GTCREATE("WVT")
pGT := HB_GTSELECT(pNewGT)
HB_GTINFO( HB_GTI_FONTSEL, "Lucida Console")
HB_GTINFO( HB_GTI_FONTWIDTH, 12 )
HB_GTINFO( HB_GTI_FONTSIZE, 28)
HB_GTINFO( HB_GTI_MAXIMIZED , .F. ) // Maximizar a tela
HB_GTINFO( HB_GTI_RESIZABLE , .F. ) // Não usar botões de redimensionamento
HB_GTINFO( HB_GTI_ALTENTER , .F. ) // Não usar ALT+Enter
//HB_GTINFO( HB_GTI_CLOSABLE , .F. ) // inibe o fechamento no X
HB_GTINFO( HB_GTI_CLOSEMODE, 2 ) // inibe o fechamento no X, alt+f4 e menu fechar
HB_GTINFO( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_FONT ) /* aumenta o tamanho da letra proporcionalmente */
HB_GTINFO( HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_GTINFO( HB_GTI_WINTITLE, "Sagrio" )
HB_GTINFO( HB_GTI_ICONRES, "AppIcon" )
HB_GTINFO( HB_GTI_ISFULLSCREEN, .F. ) // Deixar a tela cheia - estilo DOS
HB_GTINFO( HB_GTI_SELECTCOPY, "Selecionar e Copiar - Para COLAR ALT+V" ) // Coloca o texto no menu do windows
_ret := EVAL( b_Block )
pNewGT := NIL
HB_GTSELECT(pGT)
RELEASE WINDOW Trava
RETURN(NIL)
#DEFINE GW_OWNER 4
#DEFINE GW_HWNDFIRST 0
#DEFINE GW_HWNDNEXT 2
//----------------------------------
STATIC FUNCTION FocarJanela(zjanela)
//----------------------------------
LOCAL aTitulos, nPos
aTitulos := RetJanelas( GetForegroundWindow() )
nPos := aScan( aTitulos, {|x| x[1] == zjanela } )
IF nPos > 0
SetForeGroundWindow( aTitulos[nPos,2] )
END
RETURN(NIL)
//----------------------------------
STATIC FUNCTION RetJanelas(nJanelas)
//----------------------------------
LOCAL aBusca := {}
LOCAL cTitulo := ""
LOCAL nJan := GetWindow( nJanelas, GW_HWNDFIRST ) // Pega primeira janela
WHILE nJan <> 0
cTitulo := GetWindowText( nJan )
IF GetWindow( nJan, GW_OWNER ) = 0 .AND. ; // Se é uma janela owner
IsWindowVisible( nJan ) .AND. ; // Se é uma janela visivel
nJan != nJanelas .AND. ; // Se não é esta aplicação
!EMPTY( cTitulo ) // Janela sem tÃtulo
// Adiciona na matriz de janelas ativas
AADD( aBusca, { cTitulo, nJan } )
END
nJan := GetWindow( nJan, GW_HWNDNEXT ) // Pega a proxima janela
END
RETURN(aBusca)
Ou seja, chamo uma janela GUI e a partir dela o console, tudo funcionando sem problemas, isso com a versão da minigui extend de fev/16, depois dessa versão, o que acontece é o seguinte, vejam que em ON GOTFOCUS eu tenho uma função que foca a janela console, que estava funcionando perfeitamente, mas se atualizo a versão do minigui extend para uma versão superior a fev/16, a janela console fica piscando, como se perdesse o foco e focasse de novo, coloquei até um contador (foca 814x) até parar na janela gui, muito estranho, isso acontece nas duas ou três primeiras vezes, dai se, eu dentro do console chamar uma janela gui, aparentemente volta ao normal, o mais estranho é que não existe alteração de código, só estou compilando/linkando com uma versão nova da minigui extend. Ja debuguei e vi que a reação da função de focarjanela é a mesma em qualquer versão da minigui, ja o ON GOTFOCUS nas versões posteriores, é executado diversas vezes, criando um loop até parar, depois volta ao normal, mas se não chamar um relatório, por exemplo, que ja é totalmente GUI, não para, se sair e entrar no CONSOLE, toda a vez fica piscando.
o que poderia ser ? alguém poderia me ajudar ?
Aguardo...