O segredo principal é este:
Código: Selecionar todos
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, {| nEvent, ... | t_oCrt:notifier( nEvent, ... ) } )
Mas não se preocupem: seria uma alternativa a mais, não algo obrigatório.
Moderador: Moderadores

Código: Selecionar todos
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, {| nEvent, ... | t_oCrt:notifier( nEvent, ... ) } )

Não mudaria nada, exceto a tela de fundo, caso usasse essa outra Main, igual acontece com GTWVG.asimoes escreveu:Mostra um exemplo Quintas





Código: Selecionar todos
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, {| nEvent, ... | t_oCrt:notifier( nEvent, ... ) } )


Notem que as mensagens do Windows passam por:SYSTEM ERROR
Error BASE/2010 Argument error: WAPI_SETTEXTCOLOR
Called from WAPI_SETTEXTCOLOR(0)
Called from WVGTSTICON:HANDLEEVENT(561)
Called from WVGCRT:NOTIFIER(393)
Called from (b)WVGSETAPPWINDOW(78)
Called from WAPI_ENABLEWINDOW(0)
Called from WVGTSTICON:DISABLE(409)
...

Isso, e se não tiver, é porque pode estar na classe herdada.asimoes escreveu:Isso é OnEvent na hwgui fica executando como se fosse uma thread
Todas as classes se não me engano tem o seu OnEvent
Código: Selecionar todos
CLASS wvgWindow
...
METHOD wvgWindow:HandleEvent()
Código: Selecionar todos
CLASS toolbar INHERIT wvgWindow, wvgPartHandler, wvgOutra
METHOD x()
::wvgWindow:HandleEvent()

Código: Selecionar todos
CLASS HGT INHERIT HMainWindow
METHOD New() INLINE ::Super:New(), ::Handle := hb_gtInfo( HB_GTI_WINHANDLE ), Self
ENDCLASS
Código: Selecionar todos
THREAD STATIC MainWVT
FUNCTION MainGT()
IF Empty( MainWVT )
MainWVT := HGT():New()
MainWVT:Handle := hb_gtInfo( HB_GTI_WINHANDLE )
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, { | nEvent, ... | MainWVT:OnEvent( nEvent, ... ) } )
//MainWVT:IsGT := .T.
ENDIF
RETURN MainWVT
Código: Selecionar todos
EXIT PROCEDURE KillGTChildren()
IF HB_ISOBJECT( MainWVT ) .AND. MainWVT:ClassName() == "WVTCRT" .AND. MainWVT:isGT
MainWVT:destroy()
MainWVT := NIL
ENDIF
RETURN