Как я понял сообщение WM_MEASUREITEM для каждого элемента списка ListBox со стилем LBS_OWNERDRAWVARIABLE вызывается только когда добавляется элемент списка в этот управляющий элемент. Необходимо заставить вызываться данное сообщения для каждого элемента списка, когда некоторые параметры окна меняется. По идее, это должно происходить при вызове функции UpdateWindow(), но этого почему-то не происходит, тем более не происходит при вызове функции InvalidateRect