如题

解决方案 »

  1.   

    重载OnCtlColor()HBRUSH CPmYsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CExpandingDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID() == IDC_MYBUTTON)
    {
    pDC->SetTextColor(RGB(255, 0, 0));
    }
    }
      

  2.   

    使用Active X控件,VC里自带有可改按纽颜色 字体的控件!
      

  3.   

    不对呀。我找样子做了。可是不行呀。
    HBRUSH CtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(pWnd->GetDlgCtrlID()==IDC_BUTTON1)
    // TODO:  在此更改 DC 的任何属性
    pDC->SetTextColor((0,0,255)); // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
    }
      

  4.   

    OnCtlColor是不能改变按牛字体颜色的,你必须自己画
      

  5.   

    在Windows中Edit,StaticBox的背景色和字体都可以通过处理WM_CTLCOLOR
    消息来改变,但Push Button却不行。
    唯一的方法是使用OwnerDraw风格的按钮。或者自己编写CButton的派生类。
      

  6.   

    greenjava(青蛙王子) 正解
      

  7.   

    要自己重载DrawItem来,OnCtrlColor对按扭的确不行的。
      

  8.   

    VC技术内幕中讲的就是1楼的朋友写的那个,不过对有的控件没有效果,我用VC6写出和书上一样的代码,可是就是没有效果