高分求助!EDIT控件的不规则形状(如椭圆形),以及背景颜色绘制
工作中需要3-5天内解决此问题。各位大侠快快出手。。在线等待。

解决方案 »

  1.   

    背景色倒是很容易,
    HBRUSH CMydilog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here    
          // TODO: Change any attributes of the DC here
        int nID = pWnd->GetDlgCtrlID();
    pDC->SetBkMode(OPAQUE);
        if( nID == IDC_EDIT1) 
            pDC->SetBkColor( RGB(  0,128,0 ) );
        return hbr;
    }
    形状只能给你UP了
      

  2.   

    以CEdit为父类生成一个子类,
    不规则形状可用CreateEllipticRgn,CreateRectRgn,PathToRegion等函数搞定。
    至于背景颜色绘制可以在类的构造函数里用m_brush.CreateSolidBrush即可
      

  3.   

    可以实现一个类似于Edit的控件,这样就可以自己定制一些描画形状和属性了。
      

  4.   

    你应该会画不规则窗口吧,Edit也是窗口呀,不用我再告诉你怎么做了吧
      

  5.   

    记得在VB中曾有使用WINAPI实现的范例
    你去API中搜寻下把
      

  6.   

    有例子:
    http://www.codeguru.com/buttonctrl/nonrectangle_button.shtml
      

  7.   

    背景色不容易吗?
    setDialogBKcolor (RGB(000,204,255,),RGB(255,0,0);
    int nResponse==IDok)
    {}
    else if (nResponse=IDCANCEL)
    {
    }
    RETURN FALSE;
    }
    注:前一个RGB是设置背景色第二个RGB是设置字体颜色
      

  8.   

    我主要是在WinCE下工作.
    可恨的是CRgn和CDC类中好多好用的方法在WinCE下都不能用.
    我是实在没办法了.
    好容易找到CCeButtonST类,可是这个类只是在颜色上下功夫,
    并没有设置形状的方法.
    我现在就想在WinCE下实现类似CRgn类中类似CreateRoundRectRgn的方法.
    请问有没有高手愿意助我一臂之力.我现在只能用位图来替代我要达到的功能.