CHeaderCtrl 类中确实有一个名为 GetItem 的公共方法,用于获取有关头部控件中特定项(列)的信息。以下是 GetItem 方法的一般用法:
BOOL GetItem(int nPos, HDITEM* pHeaderItem) const;

参数解释:
  •  nPos:要获取信息的项(列)的索引。

  •  pHeaderItem:指向 HDITEM 结构的指针,用于接收有关项的信息。


HDITEM 结构定义如下:
typedef struct {
    UINT    mask;
    int     cxy;
    LPWSTR  pszText;
    HBITMAP hbm;
    int     cchTextMax;
    int     fmt;
    LPARAM  lParam;
    int     iImage;
    int     iOrder;
} HDITEM;

其中,mask 字段指定 HDITEM 结构的哪些字段包含有效数据。您可以使用 HDI_XXX 标志来指定需要的字段。

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

    HDITEM headerItem;
    ::ZeroMemory(&headerItem, sizeof(HDITEM));
    headerItem.mask = HDI_TEXT;  // 指定需要获取文本信息

    // 获取头部控件中第一列的信息
    BOOL bResult = m_headerCtrl.GetItem(0, &headerItem);
    if (bResult) {
        // 成功获取信息
        CString strHeaderText = headerItem.pszText;
        // 可以使用 strHeaderText 进行相应的操作
    } else {
        // 获取信息失败,处理错误
    }
} else {
    // 创建失败,处理错误
}




转载请注明出处:http://www.pingtaimeng.com/article/detail/18085/MFC/CHeaderCtrl