comment changer la couleur d'arrière-plan d'un contrôle de texte statique (quand un bouton est enfoncé ou dans un timer) dans mfc?

Je sais que cela peut être fait avec OnCtlColor(), mais il change de couleur lorsque le formulaire est chargé et les textes statiques sont à tirer, je veux le faire après la forme est chargé, avec un timer peut-être, j'ai cherché une solution mais je ne l'ai pas trouver, c'est ce que j'ai écrit:

void CTabFive::OnBnClickedButton1()
{
    //TODO: Add your control notification handler code here
    CWnd* pWnd = this->GetDlgItem(IDC_Chromosome1);
    CDC* dc = pWnd->GetDC();
    dc->SetBkColor(RGB(200,0,0));
    pWnd->Invalidate();
    pWnd->UpdateWindow();
    Invalidate();
    UpdateWindow();
    //flag = true;
}
OnCtlColor devrait être appelée à chaque fois lorsqu'un contrôle est redessiné. Essayez d'invalider la fenêtre, et écrire OnCtlColor fonction qui fonctionne en fonction de l'état actuel - par exemple, l'utilisation de certaines variables définies par WM_TIMER gestionnaire.
Est-il de toute façon à invalider juste un contrôle de la forme non pas l'ensemble de la forme? parce que quand j'utilise l'invalider retrace l'ensemble de la forme, et il provoque un clin d'oeil!

OriginalL'auteur Saman Hakimzadeh Abyaneh | 2012-08-17