带 CBS_OWNERDRAWFIXED 的 CComboBox 动态创建报错解决办法

用CComboBox的DrawItem()函数,因此设置其style为 CBS_OWNERDRAWFIXED,现在我要动态创建一个 CComboBox,会出现错误!

f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/winctrl1.cpp 
行269错误

通过百度后发现解决办法

在CBS_OWNERDRAWFIXED的风格下,或是在CBS_OWNERDRAWVARIABLE风格下,得重载一下MeasureItem函数,哪怕这个函数不做啥事。不然调试的时候会报错的

void CComboBoxF::MeasureItem(LPMEASUREITEMSTRUCT /*lpMeasureItemStruct*/)
{

    // TODO:  添加您的代码以确定指定项的大小
}

范文泉 发布于 2023-01-04 15:12