https://blog.csdn.net/wghhdzwzqbx02/article/details/7277937
对于ComboBox而言,虽然与Button相比,自绘都在DrawItem函数中进行,但是实际自绘过程远比Button复杂。原因之一就在于它本身的复杂度:它由三个控件组成(CEdit,CListBox,CButton)。而且在自毁过程中极易发生各种问题,现在总结如下:
一、CComboBox的AddString函数异常
原因:可能属性未设置正确。
需要设置Owner Draw属性:这个属性有三个选项:No(不采用任何自绘),Fixed(固定属性的列表高度和宽度),Variable(改变列表的高度和宽度).最直白的理解分别是:不响应DrawItem()、响应DrawItem(不响应MeasureItem)、响应MeasureItem(也响应DrawItem)。也就是说,需要将三个风格严格对应起来。
二、自定义CComboBox不经过DrawItem函数
原因:同上。
三、CComboBox的GetLBText函数取到空的字符串问题。
原因:可能是属性未设置正确:Has Strings属性有没有选上。如果没有选上该属性,即使调用了AddString函数,也在无法调用GetLBText函数来获取字符串。