METHOD HandleEvent( nMsg, nWParam, nLParam ) CLASS TControl/* Cambios propuestos por A. Linares y Patricio Avalos Aguirre*/
case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if Valtype( ::lTransparent ) = "L" .and. ::lTransparent .and. ;
::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return nResult
/* Fin de Agregado por Linares y confirmado por Patricio Avalos Aguirre*/
Y este trozo donde se menciona a "TBTNBMP" ¿como queda? ¿sería adecuado que se agregue a la propuesta? case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if Upper( ::ClassName() ) == "TBTNBMP"
::Refresh()
endif
::oWnd:Refresh()
return nResult
Antonio Linares wrote:Patricio,
Este es un error que hemos corregido varias veces y que luego, por varias razones hemos pensado que no era necesario. Pero samples\GradBrus.prg claramente demuestra que si hace falta solucionarlo.
Hay que añadir estas líneas a la Clase TControl en source\classes\control.prg
- Code: Select all Expand view
...
case nMsg == WM_LBUTTONDOWN
if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return Super:LButtonDown( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )
case nMsg == WM_LBUTTONUP
if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return Super:LButtonUp( nHiWord( nLParam ), nLoWord( nLParam ), nWParam )
case nMsg == WM_UPDATEUISTATE // buttons, radios and checkboxes were erased when pressing ALT
nResult = Super:HandleEvent( nMsg, nWParam, nLParam )
if ::lTransparent .and. ::IsKindOf( "TRADIO" ) .or. ::IsKindOf( "TCHECKBOX" )
::oWnd:Refresh()
endif
return nResult
endcase