在MFC中怎样改变对话框上Button的形状和颜色,Edit框里的颜色。静态文本的字体颜色。
麻烦说得具体一点啊,易懂的那种.....

解决方案 »

  1.   

    要改变颜色请重写OnCtlColor方法。
    HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  在此更改 DC 的任何属性 
    if(pWnd->GetDlgCtrlID()   ==   IDC_EDIT_RESULT)
    {   
    pDC->SetBkColor(RGB(255,255,255));
    pDC->SetTextColor(RGB(0,0,255));
    return   (HBRUSH)GetStockObject(WHITE_BRUSH);   
    } // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
    }
    以上是改变文本框背景颜色以及文字颜色的例子,供参考。
      

  2.   

    在OnCtlColor函数中修改,静态文本的字体颜色可以通过SetTextColor来修改
      

  3.   


    这个我知道。
    程序在运行的时候会调用OnPain函数,那么我们可以在这里设置背景颜色。
    void CFlipCardsDlg::OnPaint() 
    {
    if (IsIconic())
    {
              //保持不变
    }
    else
    {
    CRect   rc;
    GetClientRect( &rc );// 获取客户区
    CPaintDC dc(this);
    dc.FillSolidRect(&rc, RGB(0,160,0));   // 填充客户区颜色
    CDialog::OnPaint();           
    }
    }
    他设置的是对话框的样色。
    还有一次性设置所有的对话框(如果是单文档的话,好像不行)
    只要一条语句,但是这里要注意这里绘制的颜色是针对程序中所有的对话框
    SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));我想要的是设置对话框上按钮的颜色。
    麻烦说一下啊
      

  4.   

    Button的形状拖动就可以改变了,
    至于其他:
    添加消息WM_CTIColorHBRUSH Ctest02Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  在此更改 DC 的任何属性
    if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT)) 

    COLORREF clr = RGB(255,0,0); 
    pDC->SetTextColor(clr);   //设置红色的文本 
    clr = RGB(0,0,0); 
    pDC->SetBkColor(clr);     //设置黑色的背景 
    hbr= ::CreateSolidBrush(clr); 
    }  // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
    }
      

  5.   


    这个就必须考虑到自己继承CButton写一个按钮类了,关于异型按钮的办法,可以用贴图或者裁剪按钮区域去实现,  网上有个CButtonST类值得一用请参考一下链接:
    http://topic.csdn.net/u/20081208/09/a332f1ac-7a25-4fd3-8d11-535f543a5f66.html
      

  6.   

    CBitmapButton 这个 可以给button按钮贴图
    CBitmapButton m_add;
    m_add.LoadBitmaps(IDB_BITMAP_ADD);//这个位图设置为你的椭圆形状
    m_add.SizeToContent();
      

  7.   

    改变形状:重绘按钮,or子类化按钮,在按钮窗口的WM_PAINT里自己怎么绘制都行(不过可能要用setwindowrgn来设置按钮的有效区域),不过重绘按钮较简单
      

  8.   

    用控件子类化方法啊。例如Edit,可以生成一个EDIT的派生类COOLEdit类,然后重载其ctlcolor消息,就可以改变控件的背景颜色和字体颜色。具体例子请百度一下控件子类化 EDIT,就会得到参考资料的。
      

  9.   

    经典源码 ButtonST
    LZ,去找找。完全能解决你的问题。