2009-11-26 29 views
1

我目前能够设置列表视图样式威盛ListView_SetExtendedListViewStyle方法,但是这使得所有列都具有相同的样式。我的目标是仅修改一列(基本上具有LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_TWOCLICKACTIVATE样式)。设置列样式? (非托管c + +)

有没有办法修改只有一列而不是整个表的样式?

编辑:甚至自定义绘制单元格的方式?

+0

请千万不要用短语“非托管C++。语言偏执者使用这个短语来暗示C++低于他们的“托管”环境。 – 2009-11-27 12:15:29

回答

1

如果您使用WTL框架,那么有一个非常有用的CCustomDraw类,您可以使用它轻松拦截NM_CUSTOMDRAW消息并绘制您自己的listview内容。

在使用WTL here进行自定义绘制时,有一个很好的CodeProject文章。

2

在Win32 API下有一个关于使用ListView控件的教程,CodeProject

寻找部件---子项目颜色---“ListView颜色”。 那里,你会看到下面的代码,其中你应该把你相应ListView_SetExtendedListViewStyle()调用的情况下,语句中:

case CDDS_SUBITEM | CDDS_ITEMPREPAINT: 
     { 
      switch(lplvcd->iSubItem) 
      { 
       case 0: // Your first column