MFC 的 CHeaderCtrl 类确实有 GetOrderArray 这个公共方法,用于获取头部控件中项(列)的显示顺序。以下是 GetOrderArray 方法的一般用法:
int GetOrderArray(int iCount, LPINT piArray) const;

参数解释:
  •  iCount:要获取的项数。

  •  piArray:指向保存项索引数组的缓冲区的指针。


返回值:
  •  如果成功,返回值为实际获取的项数。这可能小于 iCount,如果 iCount 大于头部控件中的项数。

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


以下是一个简单的示例,演示如何使用 GetOrderArray 方法获取头部控件中所有项的显示顺序:
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 nItemCount = m_headerCtrl.GetItemCount();
    int* pOrderArray = new int[nItemCount];

    int nResult = m_headerCtrl.GetOrderArray(nItemCount, pOrderArray);
    if (nResult != -1) {
        // 成功获取显示顺序
        // 可以使用 pOrderArray 进行相应的操作
    } else {
        // 获取显示顺序失败,处理错误
    }

    delete[] pOrderArray;
} else {
    // 创建失败,处理错误
}




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