设置列样式? (非托管c ++)

时间:2009-11-26 14:29:26

标签: c++ listview winapi unmanaged

我目前能够通过ListView_SetExtendedListViewStyle方法设置列表视图样式,但这会使所有列具有相同的样式。我的目标是只修改一列(基本上有LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_TWOCLICKACTIVATE样式)。

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

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

2 个答案:

答案 0 :(得分:2)

CodeProject上的Win32 API下有一个使用ListView控件的教程。

“ListView颜色”下查找名为 ---子项目颜色--- 的部分。 在那里,您将看到以下代码,您应该在case语句中放置相应的ListView_SetExtendedListViewStyle()调用:

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

答案 1 :(得分:1)

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

有一篇关于使用WTL here进行自定义绘制的CodeProject文章很好。