Eu disse tempos atrás, acho mais fácil mexer nos fontes da hwgui do que criar janelas em hwgui.
Tenho minhas limitações, mas consigo ajudar.
E volto a dizer: fontes da hwgui são parecidos com gtwvg, dá pra aproveitar muita coisa de uma pra outra, só vamos esbarrar em diferenças em C, e o Harbour 3.4 tá muito bom nisso.
hwgui, repare que é tudo SendMessage():
/*
UpdateProgressBar( hPBar )
*/
HB_FUNC( HWG_UPDATEPROGRESSBAR )
{
SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_STEPIT, 0, 0 );
}
/*
ResetProgressBar( hPBar )
Added by DF7BE
*/
HB_FUNC( HWG_RESETPROGRESSBAR )
{
SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETPOS,
( WPARAM ) 0 , 0 );
}
/*
SetProgressBar( hPBar , nPercent )
*/
HB_FUNC( HWG_SETPROGRESSBAR )
{
SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETPOS,
( WPARAM ) hb_parni( 2 ), 0 );
}
HB_FUNC( HWG_SETRANGEPROGRESSBAR )
{
SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETRANGE, 0, MAKELPARAM( 0, hb_parni( 2 ) ) );
SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETSTEP, 1 , 0 );
}
progrbar na gtwvg do Harbour 3.4: idem, mas em PRG, e acaba usando wapi_SendMessage() da hbwin.
METHOD WvgProgressBar:SetValue( nValue, nRangeMin, nRangeMax, nSpeed )
IF HB_ISNUMERIC( nRangeMin ) .AND. HB_ISNUMERIC( nRangeMax ) .AND. ! ::lMarquee
::nRangeMin := nRangeMin
::nRangeMax := nRangeMax
::sendMessage( PBM_SETRANGE, 0, WIN_MAKELONG( ::nRangeMin, ::nRangeMax ) )
ENDIF
IF HB_ISNUMERIC( nValue ) .AND. ! ::lMarquee
::sendMessage( PBM_SETPOS, nValue, 0 )
::nValue := nValue
ENDIF
IF HB_ISNUMERIC( nSpeed ) .AND. ::lMarquee
::sendMessage( PBM_SETMARQUEE, 1, nSpeed )
::nSpeed := nSpeed
ENDIF
RETURN ::sendMessage( PBM_GETPOS, 0, 0 )
METHOD PROCEDURE WvgProgressBar:SetColorBarFG( nColor )
IF HB_ISNUMERIC( nColor )
::sendMessage( PBM_SETBARCOLOR, 0, nColor )
ENDIF
RETURN
METHOD PROCEDURE WvgProgressBar:SetColorBarBG( nColor )
IF HB_ISNUMERIC( nColor )
::sendMessage( PBM_SETBKCOLOR, 0, nColor )
ENDIF
RETURN
Os exemplos de gtwvg podem ser ruins, mas os fontes escondem maravilhas, assim como a hbwin do Harbour 3.4 também tem maravilhas de compatilidade.
Digo isso pra olharem os fontes, e aproveitarem pra entender o comportamento e melhorar tudo.
Não importa o que se use, dá pra aproveitar de uma lib pra outra.