基于MFC对话框应用程序
动态改变CStatic控件的颜色,我在类向导里面用了一个Static控件的控制变量,m_no1,写下这样的代码
m_no1.GetDC()->SetBkMode(TRANSPARENT);
m_no1.GetDC()->SetBkColor(RGB(255,0,0));
么有效果!!请高手解释一下,另外,怎么达到我的效果呢?5秒钟变一次颜色
另外有人说,在工具栏里面脱出来的Static控件是Active控件?什么意思啊?
动态改变CStatic控件的颜色,我在类向导里面用了一个Static控件的控制变量,m_no1,写下这样的代码
m_no1.GetDC()->SetBkMode(TRANSPARENT);
m_no1.GetDC()->SetBkColor(RGB(255,0,0));
么有效果!!请高手解释一下,另外,怎么达到我的效果呢?5秒钟变一次颜色
另外有人说,在工具栏里面脱出来的Static控件是Active控件?什么意思啊?
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID() == IDC_STATIC)
{
static HBRUSH hbrEdit = ::CreateSolidBrush(m_static_colr);
pDC->SetBkColor(RGB(255, 255, 255));
return hbrEdit;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}定义一个成员变量m_static_colr表示背景,在定时器里面动态改变颜色值就行了
在工具栏里面脱出来的Static控件是Active控件? 没有这一说
然后OnCtlColor中修改它的颜色
请参见http://www.xiaohui.com/dev/vccool/static/5.htm
然后在定时器函数里完成时间的需要。
注意两点:如果要使用控件ID,不能用IDC_STATIC,可以随便改一下;不要先调用CDialog::OnCtlColor,以免资源泄露。
然后OnCtlColor中修改它的颜色 要调用SetBkColor设置文字背景色,
方法恨多,看你喜欢什么样子的更适合你,不要看广告,要看疗效。