Missing messages and redraw problem in Btrieve Setup utility 6.15

Dan Kegel dank at kegel.com
Sat Feb 1 14:16:02 CST 2003


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]

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




More information about the wine-devel mailing list