Why do you update the item in the menu bar (and redraw the whole bar as well) from within the message handler for some submenu item?
It will only be called in response on the user action like clinking on the menu item in the menu bar!
Perhaps, you'd implement something like what was suggested in this thread?