I think I have reproduced the same problem with a simple testpgm...
Instructions...
1. Start Visual Studio, create a default windows application 2. Comment out the code in the WM_PAINT and replace it with return 1 (important) 3. Run it...
On windows you can play with the menu etc and it works. The CPU is at 100% but clicking on menu items works, and menu->exit does actually exit the app. (Menu->About causes a hang)
On wine you get the infinite loop and the screen/menu never gets as far as being drawn
Note:Its important to to return the 1 (or TRUE) - returning 0 works fine on both!
Question... Is wine being too proactive - Perhaps in the case where the redraw is unsuccessful then wine should schedule a WM_PAINT rather than performing it?
Note: UT2003 seems to just do: CreateWindowEx(AppWindow, Visible+..., ) ShowWindow(show no activate) UpdateWindow(rdw all children, updatenow) **hang**
Jason