我重载了class CSortHeaderCtrl : public CHeaderCtrl
在void CSortHeaderCtrl::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )中调用
COLORREF m_colRow1=RGB(125,125,125);
CBrush brush0(m_colRow1);
dc.FillRect(rc,&brush0);
和在BOOL CSortHeaderCtrl::OnEraseBkgnd(CDC* pDC) 中调用
COLORREF m_colRow1=RGB(125,125,125);
CBrush brush0(m_colRow1);
CRect rcRect;
CSortHeaderCtrl::GetClientRect(rcRect);
pDC->FillRect(&rcRect,&brush0);
pDC->SetBkColor(m_colRow1);
都不能改变列表头的背景颜色,但是当鼠标单击列表头后,改头的背景颜色才会改变

解决方案 »

  1.   

    CHeaderCtrl这个是什么类?
    没有用过
      

  2.   

    4个小裤衩了还不知道CHeaderCtrl汗一个为什么又DrawItem又EraseBkgnd?直接在EraseBkgnd里return TRUE试试。
      

  3.   

    EraseBkgnd里return TRUE后,只能改变没有标题的列表头,有文字(标题)的列表头的背景色没有改变,还是要单击鼠标后才能通过DrawItem来改变背景色
      

  4.   

    http://www.pocketpcdn.com/articles/hdr_color.html
      

  5.   

    我看了http://www.pocketpcdn.com/articles/hdr_color.html但现在被DrawItem和OnCustomDraw两个函数弄糊涂了,他们到底有什么区别?