This seems like a nice little test case. The UI in question is a single large dialog box put up by the Btrieve 6.15 setup utility. The Btrieve 6.15 redistributables saved in a zip file are only about 500KB, so it's a pretty easy test case to send to anyone interested.
Recipe: Start BTI setup. Press TAB three times to bring to settings combo box. Start logging messages to small readonly text control giving name of current setting (11th control in spy++). Press Uparrow to pick different setting. Note visual problem in Wine.
The problem in Wine is that the bottom window ends up blank. The sequence appears to be: erase bottom window, draw right values for bottom window client areas but not frames, erase bottom window. On Windows, it seems to continue after that with: draw right values for client areas again, then draw frames. Those last two bits are missing in Wine.
Here are message logs taken with spy++:
Microsoft Windows Me <00001> 00000798 S .WM_SHOWWINDOW fShow:False fuStatus:0 (ShowWindow was called) [wParam:00000000 lParam:00000000] <00002> 00000798 R .WM_SHOWWINDOW lResult:00000000 <00003> 00000798 S .WM_WINDOWPOSCHANGING lpwp:007DF2BA [wParam:00000000 lParam:007DF2BA] <00004> 00000798 R .WM_WINDOWPOSCHANGING lResult:00000000 <00005> 00000798 S .WM_WINDOWPOSCHANGED lpwp:007DF2F6 [wParam:00000000 lParam:007DF2F6] <00006> 00000798 R .WM_WINDOWPOSCHANGED lResult:00000000 <00007> 00000798 S .WM_SHOWWINDOW fShow:True fuStatus:0 (ShowWindow was called) [wParam:00000001 lParam:00000000] <00008> 00000798 R .WM_SHOWWINDOW lResult:00000000 <00009> 00000798 S .WM_WINDOWPOSCHANGING lpwp:007DF2BA [wParam:00000000 lParam:007DF2BA] <00010> 00000798 R .WM_WINDOWPOSCHANGING lResult:00000000 <00011> 00000798 S .WM_WINDOWPOSCHANGED lpwp:007DF2F6 [wParam:00000000 lParam:007DF2F6] <00012> 00000798 R .WM_WINDOWPOSCHANGED lResult:00000000 <00013> 00000798 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] <00014> 00000798 S WM_NCPAINT hrgn:00000001 [wParam:00000001 lParam:00000000] <00015> 00000798 R WM_NCPAINT lResult:00000000 <00016> 00000798 S WM_ERASEBKGND hdc:00000DDE [wParam:00000DDE lParam:00000000] <00017> 00000798 R WM_ERASEBKGND fErased:True [lResult:00000001]
Wine <00001> 00020054 S .WM_SHOWWINDOW fShow:False fuStatus:0 (ShowWindow was called) [wParam:00000000 lParam:00000000] <00002> 00020054 R .WM_SHOWWINDOW lResult:00000000 <00003> 00020054 S .WM_WINDOWPOSCHANGING lpwp:40792458 [wParam:00000000 lParam:40792458] <00004> 00020054 R .WM_WINDOWPOSCHANGING lResult:00000000 <00005> 00020054 S .WM_WINDOWPOSCHANGED lpwp:40792458 [wParam:00000000 lParam:40792458] <00006> 00020054 R .WM_WINDOWPOSCHANGED lResult:00000000 <00007> 00020054 S .WM_SHOWWINDOW fShow:True fuStatus:0 (ShowWindow was called) [wParam:00000001 lParam:00000000] <00008> 00020054 R .WM_SHOWWINDOW lResult:00000000 <00009> 00020054 S .WM_WINDOWPOSCHANGING lpwp:40792458 [wParam:00000000 lParam:40792458] <00010> 00020054 R .WM_WINDOWPOSCHANGING lResult:00000000 <00011> 00020054 S .WM_WINDOWPOSCHANGED lpwp:40792458 [wParam:00000000 lParam:40792458] <00012> 00020054 R .WM_WINDOWPOSCHANGED lResult:00000000
----------------------------------------------------- Same thing, but log messages to the 5th control in spy++. This is the VisualCtl that is the frame and background for the entire bottom part of the dialog.
Microsoft Windows Me <00001> 00000780 P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] <00002> 00000780 S WM_NCPAINT hrgn:00000A48 [wParam:00000A48 lParam:00000000] <00003> 00000780 R WM_NCPAINT lResult:00000000 <00004> 00000780 S WM_ERASEBKGND hdc:00000C12 [wParam:00000C12 lParam:00000000] <00005> 00000780 R WM_ERASEBKGND fErased:True [lResult:00000001]
Wine <00001> 0002005A P WM_PAINT hdc:00000000 [wParam:00000000 lParam:00000000] <00002> 0002005A S WM_ERASEBKGND hdc:00000864 [wParam:00000864 lParam:00000000] <00003> 0002005A R WM_ERASEBKGND fErased:True [lResult:00000001]