Bonjour,
Dans mon programme VC6 je veux utiliser 4 zones "statictext" dont je veux changer la couleur en fonction du résultat d'un contrôle effectué plus loin dans le code :
rouge : fail
orange : warning
vert : pass
(avec la couleur orange par defaut )
Ma boite de dialogue est lancée, j'affiche mes 4 zones "statictext" en orange sans problème grâce à ce code :
/************************************************************************/
HBRUSH CGDeviceDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
/************************************************************************/
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->m_hWnd == GetDlgItem(IDC_STATIC01)->m_hWnd)
{
pDC->SetTextColor(RGB(255,255,255));
pDC->SetBkMode(TRANSPARENT);
m_hBackGround = CreateSolidBrush(RGB(240,180,35));
return m_hBackGround;
}
if(pWnd->m_hWnd == GetDlgItem(IDC_STATIC02)->m_hWnd)
{
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkMode(TRANSPARENT);
m_hBackGround = CreateSolidBrush(RGB(240,180,35));
return m_hBackGround;
}
if(pWnd->m_hWnd == GetDlgItem(IDC_STATIC03)->m_hWnd)
{
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkMode(TRANSPARENT);
m_hBackGround = CreateSolidBrush(RGB(240,180,35));
return m_hBackGround;
}
if(pWnd->m_hWnd == GetDlgItem(IDC_STATIC04)->m_hWnd)
{
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkMode(TRANSPARENT);
m_hBackGround = CreateSolidBrush(RGB(240,180,35));
return m_hBackGround;
}
return hbr;
}
par contre je ne sais pas changer ces couleurs dynamiquement ?
J'essaye déseperement d'appeler cette fonction plus loin dans le code ..
Je précise que la fonction OnCtlColor() est gérée par le message WM_CTLCOLOR
quelqu'un peut m'aider ?
merci d'avance