MDI windows, MDIClient and mdiclient
Boaz Harrosh
boaz at hishome.net
Sun Oct 19 12:18:29 CDT 2003
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
>
More information about the wine-devel
mailing list