如何进行列表控件自绘制。包括改变标签的颜色长、宽、在上面绘图、列表项的长宽、及背景颜色。

解决方案 »

  1.   

    以下有很多listctrl继承类,自己挑选着看吧
    http://www.codeguru.com/Cpp/controls/listview/
    http://www.codeproject.com/listctrl/
      

  2.   

    从CListBox继承。
    有两个虚函数必须要知道的:
    CListBox::MeasureItem 。
    CListBox::DrawItem 。每当listbox要重画的时候,WM_MEASUREITEM将被发送,你可以在MeasureItem中指定高度等信息。 如果列表框是LBS_OWNERDRAWFIXED样式的话,所有的item高度时一样的,相反,LBS_OWNERDRAWVARIALBE是不一样的。可以在PreCreateWindow中改变样式。WM_MEASUREITEM之后,将发送WM_DRAWITEM消息,你可以在DrawItem中画图,做什么鬼东西都可以。他们的参数可以参考msdn.另外,最好把样式LBS_SORT关掉。基本上就这些东西,楼上给出了例子。