MFC CListCtrl控件表头锁定方法

实现CListCtrl控件表头锁定功能,可以使用自定义派生类的方式拦截WM_HSCROLL和WM_VSCROLL消息,并在消息处理函数中根据滚动条位置调整表头位置,确保表头始终保持可见。

以下是一个简单的代码示例:

void CMyListCtrl::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
  // 获取表头控件
  CHeaderCtrl* pHeader = GetHeaderCtrl();

  // 获取滚动条位置
  int nScrollPos = GetScrollPos(SB_HORZ);

  // 设置表头位置
  pHeader->SetWindowPos(NULL, nScrollPos, 0, 0, 0, SWP_NOSIZE | SWP_NOZORDER);

  // 调用基类消息处理函数
  CListCtrl::OnHScroll(nSBCode, nPos, pScrollBar);
}

注意:

  • 需要将CListCtrl控件的属性设置为“Report”视图模式。
  • 需要将CListCtrl控件的水平滚动条设置为可见。
rar 文件大小:1.94MB