Maximize first MDI child
B Chandra Sekhar -- int@pacific.net.sg Thursday, August 29, 1996 In my MDI application, I want the main window to be maximized and the first MDI child window to be created with the size of the client area of the CMDIFrameWnd. If I use rectDefault to create the MDI Child and then maximize it, then when the next MDI child window is created, the first one gets resized to rectDefault. I always want the first MDI Child window to be maximized, so I think that while creation itself, I have to create it with the max size i.e. the client area of the MDI Frame. How should I do this ? Environment : VC++ 4.0, Windows 95 Thanks Srini
Jim Leavitt -- jimll@halcyon.com Saturday, August 31, 1996 Srini Wrote: In my MDI application, I want the main window to be maximized and the first MDI child window to be created with the size of the client area of the CMDIFrameWnd. If I use rectDefault to create the MDI Child and then maximize it, then when the next MDI child window is created, the first one gets resized to rectDefault. I always want the first MDI Child window to be maximized, so I think that while creation itself, I have to create it with the max size i.e. the client area of the MDI Frame. How should I do this ? Environment : VC++ 4.0, Windows 95 Thanks Srini Srini: Easy... Override void CChildFrame::ActivateFrame(int nCmdShow) where CChildFrame is the class of your mdi child frame window. Example: void CChildFrame::ActivateFrame(int nCmdShow) { if (nCmdShow == -1) nCmdShow = SW_SHOWMAXIMIZED; CMDIChildWnd::ActivateFrame(nCmdShow); } (You may want to put in a test for the 'first' window, as this stands now, it will maximize every CChildFrame it shows.) Jim Leavitt
PP mail system -- LAWSONW@sydney.ccur.com Monday, September 02, 1996 G'day! In any MDI application I run, maximizing Window "n" has no effect on a maximized Window 1 -- it does not resize. Are you certain you aren't doing something to the sizing elsewhere? An inappropriate SetWindowPlacement? Regards, Jim LW
Prakash N -- pran@wings.xko.dec.com Monday, September 02, 1996 Hello! In Jim Leavitt's reply, he has told that the ActivateFrame() of Child = window will test for nCmdShow. But, if you put it in CChildFrame class, = it may not work. Since the value of nCmdShow is set to -1 every time the = window is created, everytime the new window will be maximized regardless = of the size of the existing children windows. Probably, you may do the following: Declare a flag in your CWinApp class and set it to TRUE in the App = constructor. In your ChildFrame::ActivateFrame(), check this flag for = TRUE and if it is so, set nCmdShow to SW_SHOWMAXIMIZED and otherwise, = leave its value as it is. This will work exactly like what you want in = your MDI application. Cheers, Prakash DEC India, Bangalore pran@wings.xko.dec.com ---------- From: PP mail system[SMTP:LAWSONW@sydney.ccur.com] Sent: Monday, September 02, 1996 3:24 PM To: int@pacific.net.sg Cc: mfc-l@netcom.com Subject: Re: Maximize first MDI child G'day! In any MDI application I run, maximizing Window "n" has no effect on a maximized Window 1 -- it does not resize. Are you certain you aren't doing something to the sizing elsewhere? An inappropriate SetWindowPlacement? Regards, Jim LW
| Вернуться в корень Архива |