Window flags problem

Fabian Cenedese Cenedese at indel.ch
Fri Oct 4 08:22:46 CDT 2002


Hi

I have a problem with my VC6 MFC MDI app. Every child window that is
docked inside isn't painted anymore and doesn't receive any messages.
Together with a friend (THX ic) I found out that the wrapper window that
does the docking doesn't have the visible flag set. Even if I create the
window with the flag set it gets deleted somewhere in CreateWindowEx
or ShowWindow. In Windows the flag can even get set even if it wasn't
set before but I just couldn't find out why.

I scrutinized the MoveWindow call. It sends the messages
WM_WINDOWPOSCHANGING, WM_NCCALCSIZE,
WM_WINDOWPOSCHANGED, WM_MOVE and WM_SIZE (in this
order) to the window. After these there is an additional
WM_SHOWWINDOW. In every handler the visible flag isn't changed yet.
After leaving the MoveWindow call the flag can be set or deleted. So
this must happen between WM_SHOWWINDOW and the end of
MoveWindow. But I couldn't find out what reason Windows uses to
change it so I can't say where in wine the error is.

I'd be very thankful if somebody with knowledge about windows and
their style flags could shed some light upon this.

Here is a small sample app (only exe, source is quite complicated,
but I can deliver that too if anybody is interested). There is a toolbar
docked below the menu but in wine there is just a dead area.
http://www.indel.ch/ftp/TestIMD.zip

BTW winedbg doesn't show the class information for walk wnd. The
same problem has MS-Spy++ but besides that it runs quite well in wine :)

Thanks for any hint/help/patch...

bye  Fabi





More information about the wine-devel mailing list