我在class CChildFrame : public CMDIChildWnd的
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs
cs.style &= ~FWS_ADDTOTITLE; //不显示子窗体标题;
cs.style |= WS_MAXIMIZE;
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;

return TRUE;
}
发现没用,这是为什么?WM_MINIMIZE却可以!最后没办法,我用如下方法解决。
void CChildFrame::ActivateFrame(int nCmdShow)
{
// TODO: 在此添加专用代码和/或调用基类
MDIMaximize(); // 最大化窗体;
CMDIChildWnd::ActivateFrame(nCmdShow);
}
请问各位大大,一般要实现初始花时便最大化,如何解决?

解决方案 »

  1.   

    MDI子窗口一启动就最大化
    方法一:
    在CChildFrame::PreCreateWindow(CREATESTRUCT& cs)函数中,加了
    cs.style|=WS_VISIBLE|WS_MAXIMIZE;,可以实现了
    方法二:
    用ClassWizard为CChildFrame类添加ActiveFrame消息
    void CChildFrame::ActivateFrame(int nCmdShow) 
    {
       if(GetMDIFrame()->MDIGetActive()) 
           CMDIChildWnd::ActivateFrame(nCmdShow); 
        else // else open maximized. 
            CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); } 我都试过。
      

  2.   

    感谢,再问一下,为什么一定要加WS_VISIBLE|,不加就不行!按道理默认应该可见阿!