RT。
在OnEraseBkgnd 或者OnPaint中把背景涂成其他颜色,程序起来后,ListBox里的Item看不见了。 怎么解决?达人帮忙啊

解决方案 »

  1.   

    在CtlColor中处理也不行,其中m_brush为已经创建好的刷子HBRUSH CWQYListBox::CtlColor(CDC* pDC, UINT nCtlColor)
    {
    // TODO:  在此更改 DC 的任何属性 // TODO:  如果不应调用父级的处理程序,则返回非 null 画笔
      if(nCtlColor==   CTLCOLOR_LISTBOX)
      {
      pDC->SetBkMode(TRANSPARENT);
      pDC->SetTextColor(m_cText);
      return m_brush;
      }
      else
      return NULL;
    }
      

  2.   

    楼主的源程序是什么!发到[email protected]看一下
      

  3.   

    构造函数中创建好刷子:m_brush.CreateSolidBrush(RGB(0,0,128));在OnEraseBkgnd 或者OnPaint中不要对ListBox背景色做任何处理;在CtlColor中处理为:
    if(nCtlColor==  CTLCOLOR_LISTBOX) 

    pDC->SetBkMode(TRANSPARENT); 
    pDC->SetTextColor(RGB(200,200,0)); 
    return (HBRUSH)m_brush.m_hObject;

    应该不会出现你说的问题
      

  4.   

    问题是,我现在需要改变ListBox的背景色啊,目的:改变背景色!
      

  5.   

    按照WooSir  的方法做了,一样,我就是用的这种发放,不行啊