• Viernes 1 de Noviembre de 2024, 06:22

Autor Tema:  Problemas Al Pintar Un Cuadro De Texto  (Leído 993 veces)

edgarhed

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Problemas Al Pintar Un Cuadro De Texto
« en: Viernes 21 de Abril de 2006, 18:43 »
0
mi problema es el siguiente quiero pintar varios cuadros de texto para indicar que han sido modificados, el problema es como puedo pintar varios cuadros de texto el programa marca lo siguiente

HBRUSH CDlgPronostico::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

   // TODO: Change any attributes of the DC here

   if( pWnd->GetDlgCtrlID() == IDC_WINL2 )
   {
      pDC->SetBkColor( m_Color );
      return (HBRUSH)m_Pincel.GetSafeHandle();
   }
   
   // TODO: Return a different brush if the default is not desired
   return hbr;
}

esta funcion me pinta el color de fondo pero como puedo hacer que varias cajas se pinta de un color al ser modificadas gracias

ivancp

  • Miembro activo
  • **
  • Mensajes: 70
    • Ver Perfil
Re: Problemas Al Pintar Un Cuadro De Texto
« Respuesta #1 en: Sábado 22 de Abril de 2006, 16:42 »
0
El codigo que muestras solo cambia de color de fondo al control IDC_WINL2 pero no verifica si ha sido modificado o no.

Lo que puedes hacer es capturar el evento "text changed" y tener un flag por cada control que se modifique. (m_bWinl2Changed)

Cuando el texto haya sido modificado

m_bWinl2Changed = true;

Luego en tu funcion ctlcolor:

if( pWnd->GetDlgCtrlID() == IDC_WINL2 && m_bWinl2Changed == true)
{
    pDC->SetBkColor( m_Color );
    return (HBRUSH)m_Pincel.GetSafeHandle();
}
ivancp