15,979
社区成员
发帖
与我相关
我的任务
分享
void ChangeColorFunction::ChangeColor()
{
if (MainDlg == NULL)
return;
RandColor();
CWnd *cwnd = CWnd::FromHandle(GetDlgItem(MainDlg, StaticID));
cwnd->Invalidate(1);
}
void ChangeColorFunction::RandColor()
{
colorChange = RGB(rand() % 256, rand() % 256, rand() % 256);
}
窗口内
void CStaticTestDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nIDEvent == 1)
{
changeFunction->ChangeColor();
}
CDialogEx::OnTimer(nIDEvent);
}
HBRUSH CStaticTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (pWnd->GetDlgCtrlID())
{
//pDC->SetBkColor(changeFunction->colorChange);//背景色为绿色
pDC->SetTextColor(changeFunction->colorChange);//文字为红色
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}