MFC ListCtrl 固定列宽?
时间: 2023-09-02 13:06:16 浏览: 152
MFC ListCtrl 的列宽可以通过设置 ListCtrl 的扩展风格实现固定列宽。具体做法如下:
1.在资源编辑器中,打开 ListCtrl 的属性对话框,将风格样式设置为 Report。
2.在代码中,设置 ListCtrl 的扩展风格,使其支持固定列宽。具体代码如下:
```c++
m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_DOUBLEBUFFER | LVS_EX_UNDERLINEHOT | LVS_EX_CHECKBOXES | LVS_EX_FLATSB | LVS_EX_TRACKSELECT | LVS_EX_INFOTIP | LVS_EX_FIXEDWIDTH);
```
其中,LVS_EX_FIXEDWIDTH 表示启用固定列宽。
3.在 ListCtrl 的 OnInitialUpdate 函数中,设置列宽。具体代码如下:
```c++
CHeaderCtrl* pHeaderCtrl = m_listCtrl.GetHeaderCtrl();
if (pHeaderCtrl != NULL)
{
int nColCount = pHeaderCtrl->GetItemCount();
for (int i = 0; i < nColCount; ++i)
{
m_listCtrl.SetColumnWidth(i, 100); //100为列宽值,可以根据需要修改
}
}
```
这里设置列宽为 100,可以根据需要修改。注意,当启用了固定列宽后,所有列的宽度都必须相等,否则会出现显示异常的情况。
阅读全文