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

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

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

有帮助吗?

解决方案

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

使用WTL 此处有一篇关于自定义绘制的好CodeProject文章。

其他提示

有关使用Win32 API下的ListView控件的教程,请参阅 CodeProject

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

case CDDS_SUBITEM | CDDS_ITEMPREPAINT: 
        {
            switch(lplvcd->iSubItem)
            {
                case 0: // Your first column
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top