如何默认子窗口最大化?具体 *** 作方法如下

如何默认子窗口最大化?具体 *** 作方法如下,第1张

1、MDI子窗口一启动就最大化

2、方法一:在CChildFrame::PreCreateWindow(CREATESTRUCT&cs)函数中,加了cs.style |= WS_VISIBLE|WS_MAXIMIZE,可以实现了

3、方法二:用ClassWizard为CChildFrame类添加ActiveFrame消息void CChildFrame::ActivateFrame(int nCmdShow){if(GetMDIFrame()->MDIGetActive())CMDIChildWnd::ActivateFrame(nCmdShow)else // else open maximized.CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED)}

4、主窗口最大化:在 InitStance 函数中设定 m_nCmdShow的取值.m_nCmdShow=SW_SHOWMAXMIZED //最大化

5、MDI窗口:重载 MDI Window 的PreCreateWindow函数,设置WS_MAXIMIZE

6、文档一生成就最大化:在视类重载的OnInitUpdate成员函数中加上:CMDIChildWnd *pWnd=(CMDIChildWnd *)GetParentFrame()pWnd->MDIMaximize()

void   CChildFrame::ActivateFrame(int   nCmdShow)    

  {  

  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  

  //   最大显示  

  nCmdShow =   SW_SHOWMAXIMIZED     

  CMDIChildWnd::ActivateFrame(nCmdShow)  

  }

单文档,一般是在主框架类做最大化(当然最好的是在程序入口处设置)

估计你的需求,应该是多文档的,这里就需要注意,每个View对应一个子框架,View的最大化,实际是子框架窗口的最大化。在childframe类中用向导添加函数activateframe,然后添加如上代码即可。

在窗口销毁函数里面删除

添加WM_DESTROY 消息响应函数

CMyFrame::DestroyWindow()

{

m_pMyview->CloseWindow()

delete m_pMyview

}

你最好可以在初始化时将m_pMyview=NULL在在程序运行中可以根据需要判断窗口是否已经创建。

主菜单就是在CmainFrame里添加IDM_TEST消息响应ON_COMMAND

m_pMyframe是与m_pMyview相连的,只要m_pMyview关闭了,相应的资源就释放掉了,就像CMainFrame* pMainFrame = new CMainFrame同样不需要手动删除。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11454369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存