在 MFC(Microsoft Foundation Classes)中,CHeaderCtrl 类确实有一个名为 OrderToIndex 的公共方法。该方法用于将头部控件中的显示顺序(order)转换为列的索引(index)。以下是 OrderToIndex 方法的一般用法:
int OrderToIndex(int nOrder) const;

参数解释:
  •  nOrder:头部控件中列的显示顺序。


返回值:
  •  如果成功,返回值为与显示顺序相对应的列的索引。

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


以下是一个简单的示例,演示如何使用 OrderToIndex 方法:
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) {
    // 成功创建头部控件
    // 可以添加列标题等操作

    // 获取头部控件中第一列的显示顺序
    int nOrder = m_headerCtrl.GetColumnOrderArray(1, NULL);
    
    // 使用 OrderToIndex 方法将显示顺序转换为列的索引
    int nIndex = m_headerCtrl.OrderToIndex(nOrder);
    if (nIndex != -1) {
        // 成功转换显示顺序为列的索引
        // 可以使用 nIndex 进行相应的操作
    } else {
        // 转换失败,处理错误
    }
} else {
    // 创建失败,处理错误
}

在这个示例中,OrderToIndex 方法用于将头部控件中的列的显示顺序转换为列的索引。


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