I am using MSDN July 2001. Just look up WM_MDICREATE at the bottom of the page you have links to an over-view and all important functions/messages.
Basically you: - Create any frame window but call MdiFrameProc for default processing. - Create a child MDIClient as you have seen. sub-class it or use it as is. (It is a global class registered by Window/Wine) - Create all MDIChild frames by doing an WM_MDICREATE on the MDIClient .Call MDIChildProc for default processing. - Menu Creation/handling differs - other stuff all taken care by MFC or WTL
Free Life Boaz
Shachar Shemesh wrote:
Shachar Shemesh wrote:
Hi all,
I am trying to make an application work under wine. The app is probably an MFC app, that defenitely uses MDI. The problem boils down to this - it tries to create an MDI window by doing SendMessageA to a message of type "WM_MDICREATE". Here's the catch - the class it wants to use is in Unicode. This fails for obvious reasons.
I'm trying to find my way around the MDI setting, and phrase a regression test. However, I cannot seem to create the exact same circumstances. When looking at the original app using Spy++, I see that the application has a window from the very start of the app (long before it sends WM_MDICREATE), which does not appear to have WS_EX_MDICHILD set, but which has a child window of class "MDIClient".
Running the same app in Wine using --debugmsg +win,+class, I can see that it asks to open a window of class "mdiclient". I do not, however, see anywhere that such a class was ever registered! Furthermore - the call succeeds.
Can anyone enlighten me? Is this window necessary whenever an MDI is present? If so, what function do I use on the parent window to tell it that it is to be an MDI container?
Many thanks, Shachar
Hi all,
I THINK I found the answer. I need to create a child window with the "MDICLIENT" class, and pass it a CreateClientStruct. I'm not sure what I need to put in the struct, but I'll guess I'll figure it out as I go along.
Now the question - is there a decent tutorial that does not require me to dig through MFC and Wine sources, just so that I find how to do 100% standard and supposedly documented things? Why can't I find it in MSDN?
Shachar