CComboBox::MeasureItem 是 MFC 中 CComboBox 类的一个公共方法,用于指定下拉框中每个项的高度。以下是该方法的基本语法:
void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

lpMeasureItemStruct 是一个指向 MEASUREITEMSTRUCT 结构的指针,该结构包含了有关测量项的信息,包括项的索引、数据等。

通常,您需要通过在派生类中覆盖 WM_MEASUREITEM 消息的处理函数来使用该方法。示例如下:
// 声明消息映射宏
ON_MESSAGE(WM_MEASUREITEM, &OnMeasureItem)

// 处理消息的函数
LRESULT CYourComboBox::OnMeasureItem(WPARAM wParam, LPARAM lParam)
{
    LPMEASUREITEMSTRUCT lpMeasureItemStruct = reinterpret_cast<LPMEASUREITEMSTRUCT>(lParam);

    // 检查是否是合法的指针
    if (lpMeasureItemStruct == nullptr)
        return 0;

    // 指定项的高度,这里假设每个项的高度都是 20
    lpMeasureItemStruct->itemHeight = 20;

    return TRUE;  // 返回 TRUE 表示已处理消息
}

在此示例中,CYourComboBox 是 CComboBox 的派生类,您需要将其替换为您的实际派生类。在消息处理函数中,您可以设置 lpMeasureItemStruct->itemHeight 以指定每个项的高度。

请注意,您可能需要在派生类中重写 PreCreateWindow 或者在创建对话框时设置 CBS_OWNERDRAWVARIABLE 样式,以启用自定义绘制和测量项。


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