谢谢!

解决方案 »

  1.   

    从网上下载一个重绘的button类吧。
      

  2.   

    通过消息WM_CTLCOLOR我们可以改变对话框或一些特殊控件的背景颜色
    1、添加WM_CTLCOLOR消息映射。
    2、在CWnd::OnCtlColor里面作相应的处理
    HRESULT CWnd::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
    {
        switch (nCtlColor)
        {
            case CTLCOLOR_BTN:                 // Button control 
            {
                pDC->SetBkColor( RGB( 255, 0, 0) );
            }
            break;
            case CTLCOLOR_DLG:                 // Dialog box 
            break;
            case CTLCOLOR_BUTTON:                 // BUTTONcontrol 
            {
                COLORREF bkColor = RGB(255,0,0);
                CRect rect;
                pWnd->GetClientRect(&rect); 
                CBrush br;
                br.CreateSolidBrush(bkColor);
                pDC->FillRect(rect, &br);*/
                pDC->SetBkColor(bkColor);
            }
            break;
            case CTLCOLOR_LISTBOX:         // List-box control 
            break;
            case CTLCOLOR_MSGBOX:         // Message box    
            break;
            case CTLCOLOR_SCROLLBAR:   // Scroll-bar control 
            break;
            case CTLCOLOR_STATIC:            // Static control  
            break;
            default:
            break;
        }    
        return CWnd::OnCtlColor(pDC, pWnd, nCtlColor);
    }
      

  3.   

    你可以自定义一个继承于CButton的类,然后在DrawItem里面写代码,但是,你的Button属性需要改一下,让它变成可以描画的。
      

  4.   

    在类向导中添加该按纽所在窗体的消息WM_CTLCOLOR,在该映射函数中捕获该按纽并设置其背景色