我知道它可以用OnCtlColor()来完成,但是当表单被加载并且要绘制静态文本时它会改变颜色,我想在加载表单后用一个计时器来做,我可以搜索但我没有找到一个明确的一个解决方案,这是我写的:需要如何在mfc中更改静态文本控件的背景颜色(当按下按钮或定时器时)?
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应在每次重绘控件时调用。尝试使窗口无效,然后编写根据当前状态工作的OnCtlColor函数 - 例如,使用由WM_TIMER处理程序设置的一些变量。 – 2012-08-17 13:23:12
@AlexFarber:无论如何,只有一个窗体的控件不是整个窗体才会失效吗?因为当我使用无效它重绘整个表单,并导致眨眼! – 2012-09-02 14:15:24