mfc中listctrl控件表头颜色
时间: 2023-10-05 21:11:23 浏览: 363
可以通过设置 List Control 的 Header 的画刷(brush)来改变表头的背景颜色。以下是示例代码:
```cpp
// 获取 Header 控件
CHeaderCtrl* pHeader = m_listCtrl.GetHeaderCtrl();
// 创建画刷
CBrush brush(RGB(255, 0, 0)); // 红色
// 或者使用系统预定义的颜色
// CBrush brush(GetSysColor(COLOR_BTNFACE));
// 设置 Header 的画刷
pHeader->SetBackgroundBrush(&brush);
```
你可以将这段代码放在 OnInitDialog 函数中,以初始化时改变表头的颜色。需要注意的是,在对话框销毁时需要释放画刷资源,可以在 OnCancel 或 OnOK 函数中添加如下代码:
```cpp
CHeaderCtrl* pHeader = m_listCtrl.GetHeaderCtrl();
pHeader->SetBackgroundBrush(NULL); // 清空画刷
```
另外,也可以通过修改 List Control 的风格(style)来改变表头的颜色。具体做法是设置 LVS_OWNERDRAWFIXED 风格,并在 OnCustomDraw 函数中绘制表头。这种方法需要更多的代码,并且可能会影响表格的性能,因此不建议使用。
阅读全文