CHeaderCtrl 类中有 HitTest 方法,用于确定给定坐标下的头部控件的位置。以下是 HitTest 方法的一般用法:
int HitTest(CPoint pt, UINT* pFlags = nullptr) const;

参数解释:
  •  pt:表示要测试的点的 CPoint 对象。

  •  pFlags:(可选)指向 UINT 的指针,用于接收有关命中测试的其他信息。


返回值:
  •  如果成功,返回值是与坐标相对应的项(列)的索引。

  •  如果失败,返回值是 -1。


以下是一个简单的示例,演示如何使用 HitTest 方法:
CHeaderCtrl m_headerCtrl;

// 在某个函数中调用 Create 方法进行头部控件的创建
BOOL bCreated = m_headerCtrl.Create(HDS_HORZ | WS_CHILD | WS_VISIBLE,
                                    CRect(10, 10, 300, 40),
                                    this,
                                    IDC_HEADER_CTRL);

if (bCreated) {
    // 成功创建头部控件
    // 可以添加列标题等操作

    CPoint point(20, 20);  // 假设要测试的点的坐标

    // 进行命中测试
    int nHitTest = m_headerCtrl.HitTest(point);
    if (nHitTest != -1) {
        // 成功命中测试
        // 可以使用 nHitTest 进行相应的操作
    } else {
        // 命中测试失败,处理错误
    }
} else {
    // 创建失败,处理错误
}

在这个例子中,HitTest 方法用于测试给定的坐标点是否命中头部控件的某个项(列)。


转载请注明出处:http://www.zyzy.cn/article/detail/18089/MFC/CHeaderCtrl