各位好,我最近在编程中遇到一个问题,请各位指教。问题如下:
我用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}
对话框和静态文本的颜色都改变了,按钮的背景色就是改变不了,不知为什么?