各位好,我最近在编程中遇到一个问题,请各位指教。问题如下:
我用vc/mfc编一个基于对话框的程序,我试图通过映射WM_CTLCOLOR消息来改变对话框及控件的背景色,代码如下:
HBRUSH CTCPDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{ switch(nCtlColor)
{
case CTLCOLOR_STATIC:
{
pDC->SetBkColor(RGB(166,202,240));
return SKYBLUEBRUSH;//SKYBLUEBRUSH=CreateSolidBrush(RGB(,,,))
}
case CTLCOLOR_DLG:
{
pDC->SetBkColor(RGB(166,202,240));
return SKYBLUEBRUSH;
}
case CTLCOLOR_BTN:
{
pDC->SetBkColor(RGB(0,0,128));
return MILKWHITEBRUSH;
} default:
return CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
// TODO: Return a different brush if the default is not desire}
对话框和静态文本的颜色都改变了,按钮的背景色就是改变不了,不知为什么?
我用vc/mfc编一个基于对话框的程序,我试图通过映射WM_CTLCOLOR消息来改变对话框及控件的背景色,代码如下:
HBRUSH CTCPDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{ switch(nCtlColor)
{
case CTLCOLOR_STATIC:
{
pDC->SetBkColor(RGB(166,202,240));
return SKYBLUEBRUSH;//SKYBLUEBRUSH=CreateSolidBrush(RGB(,,,))
}
case CTLCOLOR_DLG:
{
pDC->SetBkColor(RGB(166,202,240));
return SKYBLUEBRUSH;
}
case CTLCOLOR_BTN:
{
pDC->SetBkColor(RGB(0,0,128));
return MILKWHITEBRUSH;
} default:
return CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
// TODO: Return a different brush if the default is not desire}
对话框和静态文本的颜色都改变了,按钮的背景色就是改变不了,不知为什么?
要想按键背景变化是要将那个CButton(或是CBitmapButton)对象
设为当前上下文------------------------
(个人意见,仅供参考)