视图类继承自CRichEditView,现在要在每次新建视图实例时将视图窗口大小初始化为与客户区大小相同,请问如何实现?

解决方案 »

  1.   

    CreateWindowEx(dwExStyleEx,"richedit",dwSytle|WS_CHILD|WS_MAXIMIZE|WS_VISIBLE,....)
    后面的参数自己查查msdn添上
      

  2.   

    首先获取frame的client大小,在sdi的初始化函数里面设置sdi的窗口为frame的client区域大小就可以了
      

  3.   

    请问怎么设置sdi的窗口为frame的client区域大小就可以了?
    我在视图类的OnDraw函数里加了以下代码,没用
    CRect rectClient;
      GetClientRect(&rectClient);//获取当前客户区的大小
               ClientToScreen(rectClient);
              this->MoveWindow(rectClient.left,rectClient.top,rectClient.Width(),rectClient.Height(),FALSE);
      

  4.   

    MoveWindows()
    自己设位置,大小
      

  5.   

    找到问题解决方法:
      1、不继承CRichEditView类,直接继承CView类
      2、编辑框控件(CRichEditCtrl)作为CView类的派生类的数据成员(私有),在WM_CREATE时使用如下代码初始化:
       CRect rect(0,0,0,0);
                   this->m_rich.Creat(ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_VSCROLL,rect,this,1);//创建CRichEditCtrl控件
      3为使该控件大小和客户区一致,加入如下代码(在WM_SIZE的消息响应函数中)
         
            CRect clientRect;//客户区大小
             this->GetClientRect(clientRect); this->m_rich.SetWindowPos(&wndTop,0,0,clientRect.right-clientRect.left,clientRect.bottom-clientRect.top,SWP_SHOWWINDOW);