我想改变Dialog里的控件底色,但老不行,结果只是蒋子符背景改了,而控件底色未变,code如显示HBRUSH CModifyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: この位置で DC のアトリビュートを変更してください
if (pWnd->GetDlgCtrlID() == IDC_TIME_STATIC)
{
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(RGB(0,255,0));
}
if (pWnd->GetDlgCtrlID() == IDC_RETURN_BUTTON)
{
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(RGB(0,255,0));
}
// TODO: デフォルトのブラシが望みのものでない場合には、違うブラシを返してください
return hbr;
}
问题会是在哪呢?

解决方案 »

  1.   


    你应该返回:HBRUSH C = CreateSolidBrush(RGB(255, 0, 0));
    return (HBRUSH) C;
      

  2.   

    在对话框类中添加变量:
      HBRUSH m_hBrush=CreateSolidBrush(RGB(0,0,0)); //用所需的背景色定义画刷 
      用建立类向导为对话框添加OnCtlColor函数:
      HBRUSH CListBkChangeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
      {     if(pWnd->GetDlgCtrlID() == IDC_TIME_STATIC) 
         {
           pDC->SetTextColor(RGB(255, 0, 0));
         pDC->SetBkColor(RGB(0,255,0));
           return m_hBrush;
         }
         else
           return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
      }
      

  3.   

    同意以上的
    也可用
    //窗口背景
    static CBrush s_brush(m_clrBackGround);
    return s_brush;