实现打开MDI子窗口默认为最大化就行了。问题代码见http://topic.csdn.net/u/20120815/04/8a4f2571-d123-49d5-9d0e-71625f7826c7.html

解决方案 »

  1.   

    在你的子窗口框架类里面,设置它的Style为WS_MAXIMIZE
      

  2.   

    就是我设了WS_MAXIMIZE后才出现问题,子窗口右上角的三个最小化按钮,变为六个了。
      

  3.   


    LRESULT CALLBACK RectWndProc2(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
      static HWND hwndClient, hwndFrame;
      switch (message) {
      case WM_CREATE:
      hwndClient = GetParent(hwnd);
      hwndFrame = GetParent(hwndClient);
      return 0;
      case WM_MDIACTIVATE:
      if (lParam == (LPARAM) hwnd)
      SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) NULL, (LPARAM) hMenuRectWindow); //原来这里是hMenuRect,现在改为NULL
      else
      SendMessage(hwndClient, WM_MDISETMENU, (WPARAM) hMenuInit, (LPARAM) hMenuInitWindow);
      DrawMenuBar(hwndFrame);
      return 0;  case WM_DESTROY:
      return 0;
      }
      return DefMDIChildProc(hwnd, message, wParam, lParam);
    }
    楼主结贴吧,搞了我很久了
      

  4.   

    这样不行的,我需要给WM_MDISETMENU传框架窗口菜单与窗口菜单两个参数,不然功能有缺失。我这边整个菜单都不见了。mdicreate.style = 0;时所有功能就正常了。
      

  5.   

    可不可以在子窗口创建完后,SendMessage(WM_MDIMAXIMIZE,0,0);
      

  6.   

    这样出现中间态,用户体验不好。就算时间很短,对于开发者往往也不想接受这样的妥协,还是想找为什么会出现那样的情况吧。现在用mdi的人好像不是很多了。
      

  7.   

    怎么不直接建MDI项目呢?
    这样搞要是就为了练习也还可以。
      

  8.   

    问题的表象就如下帖一样,有图片。
    http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/0a69e803-7a38-445a-84f0-7c2071684706   
    http://zhidao.baidu.com/question/233023959.html