防止在ListCtrl(ReportView)中调整第一列的大小

时间:2017-10-12 10:27:38

标签: winapi mfc controls

我来自this LVCFMT_FIXED_WIDTH 此格式样式有效,但仅在第一列之后。第一列项始终可移动。为什么?我错过了什么吗?

for(int i = 0; i<NUM_COLUMNS; i++)
{
    m_ListCtrl.InsertColumn(i,_gszColumnLabel[i], _gnColumnFmt[i] |  LVCFMT_FIXED_WIDTH, _gnColumnWidth[i], -1);
}   

1 个答案:

答案 0 :(得分:3)

第一栏is special出于某种原因:

  

如果将列添加到索引为0(最左侧列)的列表视图控件中,则始终为LVCFMT_LEFT。在列0上设置其他标志不会覆盖该对齐。因此,如果继续插入索引为0的列,则所有列中的文本都是左对齐的。如果希望第一列右对齐或居中,则可以创建一个虚拟列,然后插入一个或多个索引为1或更高的列,并指定所需的对齐方式。最后删除虚拟列。

也许虚拟列技巧也适用于你的情况?