1 首先创建画刷,在构造函数中画刷
// 创建画刷
m_hredbrush = CreateSolidBrush(RGB(255, 0, 0));
m_hgreenbrush = CreateSolidBrush(RGB(0, 255, 0));
m_hsourcebrush = CreateSolidBrush(RGB(240, 240, 240));
初始化控件样式
((CStatic*)GetDlgItem(IDC_STATIC_ZJ))->ModifyStyle(0, WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT);
//((CStatic*)GetDlgItem(IDC_STATIC_ZJ))->Invalidate(TRUE);
((CStatic*)GetDlgItem(IDC_STATIC_LASER))->ModifyStyle(0, WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT);
//((CStatic*)GetDlgItem(IDC_STATIC_LASER))->Invalidate(TRUE);
((CStatic*)GetDlgItem(IDC_STATIC_JXWD2))->ModifyStyle(0, WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT);
重绘控件时的样式
((CStatic*)GetDlgItem(IDC_STATIC_ZJ))->ModifyStyle(WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT, 0);
((CStatic*)GetDlgItem(IDC_STATIC_ZJ))->Invalidate(TRUE);
((CStatic*)GetDlgItem(IDC_STATIC_LASER))->ModifyStyle(WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT, 0);
((CStatic*)GetDlgItem(IDC_STATIC_LASER))->Invalidate(TRUE);
((CStatic*)GetDlgItem(IDC_STATIC_JXWD2))->ModifyStyle(WS_BORDER | SS_BLACKFRAME | SS_BLACKRECT, 0);
((CStatic*)GetDlgItem(IDC_STATIC_JXWD2))->Invalidate(TRUE);
2使用画刷
HBRUSH CZKMonitorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// 激光器
if ( pWnd->GetDlgCtrlID() == IDC_STATIC_LASER )
{
//pWnd->SetWindowTextW(_T(""));
switch (laserCheckStateData)
{
case emNone:
{
/*m_sourceCOLORREF = pDC->GetDCBrushColor;*/
//pDC->SetBkColor(m_hsourcebrush);
//pDC->SetBkColor(pDC->SetBkColor(m_sourceCOLORREF););
//pDC->SetBkColor(RGB(120, 120, 120));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hsourcebrush;
break;
}
case emOK:
{
//pDC->SetBkColor(RGB(255,0,0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hgreenbrush ;
break;
}
case emError:
{
//pDC->SetBkColor(RGB(0, 255, 0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hredbrush;
break;
}
default:
break;
}
}
// 振镜
if ( pWnd->GetDlgCtrlID() == IDC_STATIC_ZJ )
{
//pWnd->SetWindowTextW(_T(""));
switch (zjCheckStateData)
{
case emNone:
{
//pDC->SetBkColor(m_sourceCOLORREF);
//pDC->SetBkColor(RGB(240, 240, 240));
//pDC->SetBkMode(TRANSPARENT);
//hbr = m_hsourcebrush;
break;
}
case emOK:
{
//pDC->SetBkColor(RGB(255, 0, 0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hgreenbrush ;
break;
}
case emError:
{
//pDC->SetBkColor(RGB(0, 255, 0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hredbrush;
break;
}
default:
break;
}
}
// 机箱温度
if (pWnd->GetDlgCtrlID() == IDC_STATIC_JXWD2)
{
switch (tmpCheckStateData)
{
case emNone:
{
//pDC->SetBkColor(m_sourceCOLORREF);
//pDC->SetBkColor(RGB(240, 240, 240));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hsourcebrush;
break;
}
case emOK:
{
//pDC->SetBkColor(RGB(255, 0, 0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hgreenbrush;
break;
}
case emError:
{
//pDC->SetBkColor(RGB(0, 255, 0));
//pDC->SetBkMode(TRANSPARENT);
hbr = m_hredbrush;
break;
}
default:
break;
}
}
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
3 删除画刷,在类的析构函数中调用
DeleteObject(m_hredbrush);
DeleteObject(m_hgreenbrush);
DeleteObject(m_hsourcebrush);