SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Perla_kiko en Miércoles 23 de Febrero de 2005, 17:14

Título: Cambiar Color Label
Publicado por: Perla_kiko en Miércoles 23 de Febrero de 2005, 17:14
Como se puede cambiar el color de un label?
Título: Re: Cambiar Color Label
Publicado por: navisoft en Martes 1 de Marzo de 2005, 18:25
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.  
Título: Re: Cambiar Color Label
Publicado por: Perla_kiko en Viernes 4 de Marzo de 2005, 14:03
Me da error en el IDC_SATATIC_COLORIDO es alguna constante? o que libreria me falta?
Título: Re: Cambiar Color Label
Publicado por: Perla_kiko en Viernes 4 de Marzo de 2005, 14:05
Por cirto si lo quiero poner en negrita?
Título: Re: Cambiar Color Label
Publicado por: Diodo en Sábado 5 de Marzo de 2005, 12:19
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 (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.onctlcolor.asp)

saludos
Título: Re: Cambiar Color Label
Publicado por: Diodo en Sábado 5 de Marzo de 2005, 12:57
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/ (http://www.codeproject.com/staticctrl/)

saludos