If your OnMearureItem is not called at least once that is an indication that the control is not an owner-draw control. You might want to use Spy++ to check that.
Perhaps the following snippet from the MSDN documentation will help you find the reason for that:
OnMeasureItem will be called only if the control's class is created at run time, or it is created with the LBS_OWNERDRAWVARIABLE or CBS_OWNERDRAWVARIABLE style. If the control is created by the dialog editor, OnMeasureItem will not be called. This is because the WM_MEASUREITEM message is sent early in the creation process of the control. If you subclass by using DDX_Control, SubclassDlgItem, or SubclassWindow, the subclassing usually occurs after the creation process. Therefore, there is no way to handle the WM_MEASUREITEM message in the control's OnChildNotify function, which is the mechanism MFC uses to implement ON_WM_MEASUREITEM_REFLECT.
For more see
http://msdn.microsoft.com/en-us/library/z8wwd4x6%28v=vs.80%29.aspx[
^]
Hope that solves your problem.