Para que los gets no aparezcan difuminados cuando se encuentran deshabilitados uso la clausula lDisColors del get. He intentando implementar este comportamiento en otros controles como son el Get Multilínea pero no lo consigo
Lo que he hecho es redefinir el metodo Paint() y agregarle el código del get pero no hace lo que debería. Seguramente habrá que hacer mas cambios pero no se por donde comenzar.
En realidad me gustaría que este comportamiento se pudiera aplicar también a los controles combobox, checkbox, etc.
Un saludo
Code: Select all
METHOD Paint() CLASS TMultiGet
local aInfo := ::DispBegin()
if ::oBrush != nil
FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
else
CallWindowProc( ::nOldProc, ::hWnd, WM_ERASEBKGND, ::hDC, 0 )
endif
if ::lDisColors
SetTextColor( ::hDC, GetSysColor( COLOR_GRAYTEXT ) )
SetBkColor( ::hDC, GetSysColor( COLOR_WINDOW ) )
else
SetTextColor( ::hDC, ::nClrText )
SetBkColor( ::hDC, ::nClrPane )
endif
CallWindowProc( ::nOldProc, ::hWnd, WM_PAINT, ::hDC, 0 )
if ValType( ::bPainted ) == "B"
Eval( ::bPainted, ::hDC, ::cPS, Self )
endif
::DispEnd( aInfo )
return 1