BeginPaint not called on WM_PAINT...
Andreas Mohr
a.mohr at mailto.de
Tue Sep 25 15:56:01 CDT 2001
Hi all,
the game Undying emits lots and lots of
err:msg:DispatchMessageA BeginPaint not called on WM_PAINT for hwnd 20029!
errors.
This is because it simply does:
0806d2c8:Call user32.DispatchMessageA(406c29b0) ret=1090e313
0806d2c8:Call window proc 0x11001530 (hwnd=00020029,msg=WM_PAINT,wp=00000000,lp=00000000)
0806d2c8:Call user32.ValidateRect(00020029,00000000) ret=11107b57
0806d2c8:Ret user32.ValidateRect() retval=00000001 ret=11107b57
0806d2c8:Ret window proc 0x11001530 (hwnd=00020029,msg=WM_PAINT,wp=00000000,lp=00000000) retval=00000000
This seems to be perfectly legal in order to validate the whole window
update rect (NULL) and thus prevent further WM_PAINTs.
(as http://www.intrepidhero.com/articles/wgpfd_errata/part2.html hints)
In short: the wine error message is erroneous in this case.
The Wine check is:
if (painting && wndPtr &&
(wndPtr->flags & WIN_NEEDS_BEGINPAINT) && wndPtr->hrgnUpdate)
{
ERR("BeginPaint not called on WM_PAINT for hwnd %04x!\n",
msg->hwnd);
So I assume that either
a)
some flag or so doesn't get updated properly by that ValidateRect()
or
b)
the error message check condition is (slightly) wrong.
Could someone please fix this ?
This happened to #WineHQ nick Thunderbird with latest version of
winex (20010824).
--
Andreas Mohr Stauferstr. 6, D-71272 Renningen, Germany
Tel. +49 7159 800604 http://home.nexgo.de/andi.mohr/
More information about the wine-devel
mailing list