• Sábado 14 de Diciembre de 2024, 14:32

Autor Tema:  Cambiar Color Label  (Leído 2551 veces)

Perla_kiko

  • Miembro MUY activo
  • ***
  • Mensajes: 114
    • Ver Perfil
Cambiar Color Label
« en: Miércoles 23 de Febrero de 2005, 17:14 »
0
Como se puede cambiar el color de un label?

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Re: Cambiar Color Label
« Respuesta #1 en: Martes 1 de Marzo de 2005, 18:25 »
0
Para hacer eso y mas sobrecargas la funcion Control Color (OnCtlColor) a tu dialogo:

Agregar una nueva variable CBrush a tu dialogo:
CBrush m_brush;

agregas la notificacion WM_CTLCOLOR a tu dialogo y quedará asi:

afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);

Y escribes el siguiente codigo para cambiar el color de fuente:

Código: Text
  1. HBRUSH CDialogoPruebaDlg::OnCtlColor(CDC* pDC
  2.           , CWnd* pWnd, UINT nCtlColor)
  3. {
  4.    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  5.    if(nCtlColor == CTLCOLOR_STATIC)
  6.    {
  7.       if (pWnd->GetDlgCtrlID() == IDC_STATIC_COLORIDO)
  8.       {
  9.          pDC->SetTextColor(RGB(255, 0, 0)); // Rojo
  10.       }
  11.    }
  12.   return hbr;
  13. }
  14.  
Si lo que quieres es cambiar el color de fondo haces:

Código: Text
  1. HBRUSH CDialogoPruebaDlg::OnCtlColor(CDC* pDC
  2.           , CWnd* pWnd, UINT nCtlColor)
  3. {
  4.  
  5.   COLORREF color = RGB(255, 0, 0); // Rojo
  6.   pDC->SetBkColor(color);
  7.  
  8.   if (m_brush.GetSafeHandle() == NULL)
  9.   {
  10.       m_brush.CreateSolidBrush(color);
  11.   }
  12.  
  13.   if (nCtlColor == CTLCOLOR_STATIC)
  14.   {
  15.       if (pWnd->GetDlgCtrlID() == IDC_STATIC_COLORIDO)
  16.       {
  17.          hbr = (HBRUSH) m_brush.GetSafeHandle();
  18.       }
  19.   }
  20.   return hbr;
  21. }
  22.  

Perla_kiko

  • Miembro MUY activo
  • ***
  • Mensajes: 114
    • Ver Perfil
Re: Cambiar Color Label
« Respuesta #2 en: Viernes 4 de Marzo de 2005, 14:03 »
0
Me da error en el IDC_SATATIC_COLORIDO es alguna constante? o que libreria me falta?

Perla_kiko

  • Miembro MUY activo
  • ***
  • Mensajes: 114
    • Ver Perfil
Re: Cambiar Color Label
« Respuesta #3 en: Viernes 4 de Marzo de 2005, 14:05 »
0
Por cirto si lo quiero poner en negrita?

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Cambiar Color Label
« Respuesta #4 en: Sábado 5 de Marzo de 2005, 12:19 »
0
Hola

IDC_STATIC_COLORIDO deberia ser el identificador de el label al cual quieres cambiar el color.

para mas informacion mirate este link

http://msdn.microsoft.com/library/default.....onctlcolor.asp

saludos

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Cambiar Color Label
« Respuesta #5 en: Sábado 5 de Marzo de 2005, 12:57 »
0
Hola de nuevo

En esta pagina puedes encontrar codigos que te pueden servir para modificar los controles static a tu gusto:

http://www.codeproject.com/staticctrl/

saludos