cambio de color en los controles deshabilitados

cambio de color en los controles deshabilitados

Postby miarcod » Thu Mar 05, 2009 2:46 pm

Hola:
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  Expand view


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


 
miarcod
 
Posts: 199
Joined: Tue Oct 11, 2005 2:17 pm

Re: cambio de color en los controles deshabilitados

Postby miarcod » Tue Mar 10, 2009 4:57 pm

Hola Antonio:

¿Existe alguna posibilidad para realizar lo que pretendo?
o es muy compleja la modificación.

Alguna ayuda...
miarcod
 
Posts: 199
Joined: Tue Oct 11, 2005 2:17 pm

Re: cambio de color en los controles deshabilitados

Postby Antonio Linares » Thu Mar 26, 2009 5:36 pm

Desde METHOD Colors( hDC ) CLASS TControl se pueden cambiar los colores antes de que el control vaya a ser pintado.

Podrias redefinir ese metodo en las clases que desees y ver si desde ese metodo, en las clases que pruebes, te permite cambiar los colores como quieres.

Revisa el codigo fuente de METHOD Colors( hDC ) CLASS TControl, e implementa METHOD Colors( hDC ) CLASS TMultiGet y comprueba si desde ahi te permite cambiar los colores estandard que el usa.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 19 guests