关闭

MDI子框架一启动就最大化

267人阅读 评论(0) 收藏 举报

MDI子框架一启动就最大化[转载]

 
 
  方法一:  
  在CChildFrame::PreCreateWindow(CREATESTRUCT&   cs)函数中,加了  
  cs.style   |=   WS_VISIBLE|WS_MAXIMIZE;,可以实现了  
  方法二:  
  用ClassWizard为CChildFrame类添加ActiveFrame消息  
  void   CChildFrame::ActivateFrame(int   nCmdShow)    
  {   
       nCmdShow=SW_MAXIMIZE;
 CMDIChildWnd::ActivateFrame(nCmdShow);
}    
   
 方法三:
          在视类重载的OnInitUpdate成员函数中加上:    
          CMDIChildWnd   *pWnd=(CMDIChildWnd   *)GetParentFrame();    
          pWnd->MDIMaximize();//或者pWnd->ShowWindow(SW_MAXIMIZE)
 
 
主窗口最大化: 比较麻烦:
注意,
1如果和子框架一样,只在主框架的PreCreateWindow中写上cs.style   |=  WS_VISIBLE| WS_MAXIMIZE;会发现不起作用,
2在OnCreate()里写showwindow(SW_MAXIMIZE)是有问题的,会发现虽然启动后尺寸是最大化,但是右上角标记是最大化,也就是此时的状态是被标记成normal下的状态,也就是窗口的最大化和normal时的尺寸变成一样了。
3  PreCreateWindow中写上
    cs.cy = GetSystemMetrics(SM_CYSCREEN) ;
     cs.cx = GetSystemMetrics(SM_CXSCREEN) ;
会发现,首先启动时,画面的下面部分被桌面下面的任务栏挡住了,其次发现和2一样的问题,此时程序窗口的最大化最小化状态没问题,但normal状态下是显示启动时的特别大的画面尺寸。
4 在view类的OnInitialUpdate()里添加:
CMainFrame* pMainfrm=(CMainFrame *)AfxGetMainWnd();
    pMainfrm->ShowWindow(SW_MAXIMIZE);  不起作用。
 
其实问题出在imgpro2.cpp里的CImgpro2App::InitInstance()里
 倒数第2句:pMainFrame->ShowWindow(m_nCmdShow);
把这句话注释掉,依次用前几种方法看看:
1 依然不起作用
2程序启动时,主框架是最大化状态(右上角标记是还原标记),但是点击后,还原的尺寸还是最大化的尺寸。
3不显示画面
4 可以实现功能。初识最大化,点击还原标记,还原成中等大小的一个窗口。
 
或者 不把pMainFrame->ShowWindow(m_nCmdShow);注释掉
在   InitStance   函数中设定   m_nCmdShow的取值.  
          m_nCmdShow=SW_SHOWMAXMIZED   //最大化   
也能实现。
  补充:
1 如果想让一幅图画打开后,子框架窗口大小和图像大小一样。如果只在openfile里写上子框架
->setwindowpos或者movwindow等程序,那么当把子框架最大化以后,再打开一幅图像,会发现虽然子框架客户区的边框和图像大小一致,但是,子框架是在最大化状态下的,程序画面会有点奇怪。所以解决方法是,在setwindowpos之前加上一句子框架->ShowWindow(SW_NORMAL),先让框架处在normal状态下。
2在normal状态下,如果把窗口大小拖动发生变化,那么最大化后,再还原,就还原成拖动后的大小,也就是normal状态下的窗口大小可以发生变化。最大化和最小化都不会。比如上面说的,在最大化时打开图像,窗口大小变化了,最小化或者还原下,再点击最大化,窗口显示是最大化时的尺寸而不会是那副图片的大小。
3 调整子框架的大小,就会调整view的大小,使view窗口自动布满子框架大小好像。因为在程序里先调整view的大小,再调整子框架大小,(让子框架大一些),发现没用,view还是布满整个子框架;
如果先调整子框架大小,再调整view大小,就会发现,子框架里只有一部分被view覆盖。
0
0

猜你在找
【直播】计算机视觉原理及实战—屈教授
【套餐】深度学习入门视频课程—唐宇迪
【套餐】Hadoop生态系统零基础入门--侯勇蛟
【套餐】嵌入式Linux C编程基础--朱有鹏
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】机器学习之凸优化——马博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4266次
    • 积分:145
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:11篇
    • 译文:0篇
    • 评论:0条
    文章分类