Not resizable CMDIChildWnd...
Reza Razavipour -- biles.com!reza_r@jabberwock.biles.com
Monday, January 15, 1996
I am running VC 4.0 patch one, on NT3.5.1.
I have these CMDIWndChild derived frame classes that I dont the user to
be able to change their size. How can I do this?
About their title, I want to be able to set it, no tweaking by the
frameworks.
Any hints are highly appreciated,
Reza
Mark F. Fling -- mfling@mail.stratacorp.com
Wednesday, January 17, 1996
biles.com!reza_r@jabberwock.biles.com (Reza Razavipour) wrote:
>I am running VC 4.0 patch one, on NT3.5.1.
>I have these CMDIWndChild derived frame classes that I dont the user to
>be able to change their size. How can I do this?
>About their title, I want to be able to set it, no tweaking by the
>frameworks.
Derive a new class from CMDIChild class, add exactly ONE override
function:
BOOL aChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{ /* Turn OFF the following Window Styles */
cs.style &= ~(WS_MAXIMIZEBOX |
WS_THICKFRAME |
FWS_ADDTOTITLE);
return CMDIChildWnd::PreCreateWindow(cs);
} // PreCreateWindow
Next, in your WinApp's InitInstance function:
m_pDocTemplate = new CMultiDocTemplate(IDR_YOURTHINGY,
RUNTIME_CLASS(CYourDoc),
note-->RUNTIME_CLASS(aChildFrame),
RUNTIME_CLASS(CYourView));
AddDocTemplate(m_pDocTemplate);
It's up to you to figure out precisely how to "pre-size" the CView to
the proper dimensions during OnInitialUpdate(). You may also want to
remove the system menu options to "Size" and "Maximize" menu items.
Add the following to your child view's OnInitialUpdate():
/* Get the enclosing CMDIChildWnd frame pointer */
CMDIChildWnd* pFrame = (CMDIChildWnd*)GetParent();
/* Now obtain the menu handle */
if (pFrame != NULL)
{ CMenu *pMenu = pFrame->GetSystemMenu(FALSE);
/* Remove the Maximize and Size items */
if (pMenu != NULL)
{ pMenu->RemoveMenu(SC_MAXIMIZE, MF_BYCOMMAND);
pMenu->RemoveMenu(SC_SIZE, MF_BYCOMMAND);
}
}
___________________________________________________________________________
Mark F. Fling mfling@stratacorp.com
Strata Corporation / SBA Voice (805) 967-3051
922 Via Brocha Fax (805) 967-8203
Santa Barbara, CA 93110
| Вернуться в корень Архива
|