如题:
    还有请问各位大侠我在 CPaintDC dc(this); // device context for painting
CRect rect;
GetDlgItem(IDC_EDIT2)->GetWindowRect(&rect);
CBrush brush(RGB(255,255,0));
dc.FillRect(&rect,&brush);
设置edit2为黄色,为何不成功??
可否详细讲解下绘图过程的调用关系和给控件绘图或修改颜色的时机??

解决方案 »

  1.   

    添加消息处理函数(WM_CTLCOLOR的),VC6.0中使用claswizard添加,.net中点击消息找到它,添加事件就可以了,
    示例为:
    HBRUSH CSettingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
              if(pWnd->GetDlgCtrlID()==编辑框的ID)
    {
    pDC->SetTextColor(RGB(255,0,0));//红色
    pDC->SetBkMode(TRANSPARENT);
    return m_brush;
    }
    return hbr;
    }
      

  2.   

    多谢楼上,可是那样的话整个list就全红了啊
      

  3.   


     http://www.codeproject.com/listctrl/coloredlistctrl.asp
      

  4.   

    请问大家一个作图的最普遍的方法,比如画笔作图划线,画刷作图填充色的例子,我试了好多次都没成功,
    大家帮忙看看代码也行
    CClientDC dc(this);
    CBrush *oldbrush=dc.SelectObject(&m_hbr); CRect rect;
    GetDlgItem(IDC_EDIT2)->GetWindowRect(&rect);
    ScreenToClient(&rect);

    dc.FillSolidRect(&rect,RGB(255,255,0)); dc.SelectObject(oldbrush);
      

  5.   

    通过消息NM_CUSTOMDRAW改变CListCtrl的item的文本色和背景色
      

  6.   

    [email protected]
    谢谢楼上,好久不上了,回家过年刚回来,多谢了
      

  7.   

    到底是要设置listview还是edit的背景?
    看着晕
      

  8.   

    刚回来
    已发请查收,希望还能有点用一个是dlg+listctrl的实现
    一个是sdi+listview的实现
      

  9.   

    http://www.vcer.net/1046595482643.html上面写得不错