SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: edgarhed en Viernes 21 de Abril de 2006, 18:43
-
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
-
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();
}