来自:
http://www.codeproject.com/listctrl/headerctrlex.asp
代码列表:
MLHListCtrl.cpp, MLHListCtrl.h, HeaderCtrlEx.cpp, HeaderCtrlEx.h
适用环境:
VC6, VC.net
在对话框中显示(原文已经提供了在MDI中的例子)
用法:
0. 解决方案/添加/添加现有项/
添加进
HeaderCtrlEx 和 MLHListCtrl 的 cpp,h
1. 在要实现多行标题的ListCtrl所在的Dlg的Dlg.h开头
#include "MLHListCtrl.h"
2. 在上述Dlg.h中找到
CListCtrl m_lvwXXX;
替换成
CMLHListCtrl m_lvwXXX;
// 上面m_lvwXXX 是控件对应的变量
3. 在对应的Dlg.cpp中找到
OnInitDialog()中
m_lvwXXX.InsertColumn(....)一段
替换成类似下面的代码
CStringArray ColumnHeader;
ColumnHeader.Add("/nCol1/nLn1/n");
ColumnHeader.Add("/nCol2/nLn1/n");
ColumnHeader.Add("/nCol3/nLn1/n");
int colWidth[] = { 60, 200, 100 };
m_lvwXXX.InitControlHeadings(ColumnHeader, colWidth);
Note: 这里显示的是3行标题(第1行用来'/n').
调整标题栏的高度在
CMLHListCtrl::InitControlHeadings(...)
中的
m_cfontNewHeaderFont.CreatePointFont(190,"MS Serif");
调整数字190(两行)适应多行的情形