zoukankan      html  css  js  c++  java
  • 设置一个视图的初始位置和大小

    移动或改变视图的大小实际上移动与其关联的父框架窗口。因此,初始化位置的行为既可以在视图的框架窗口类中实现,也可以在视图类中实现,下面提供了2中实现方法。

    第一种技术:在视图的框架窗口类中实现该行为

    第1步:使用ClassWizard创建一个新的CMDIChildWnd派生类,该类将实现所希望的初始化视图位置的行为。

    第2步:使用ClassWizard为CMDIChildWnd派生类增加WM_CREATE消息处理函数,该函数的实现代码如下:

        int CCenterChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)  
        {  
              if(CMDIChildWnd::OnCreate(lpCreateStruct)==-1)  
                    return -1;  
              //把窗口设置为主框架窗口客户区的1/4,并置于中央  
              CWnd* pMDIClient=GetParent();  
              ASSERT_VALID(pMDIClient);  
              CRect rect;  
              pMDIClient->GetClientRect(&rect);  
              MoveWindow(rect.Width()/4 , rect.Height()/4 , rect.Width()/2 , rect.Height()/2 );  
                
              return 0;  
        }  

    第3步:不要忘记在适当的文档模板中说明视图框架窗口,以得到所希望的行为。

    第2中技术:在视图类中实现该行为

          在视图类中使用ClassWizard重载OnInitialUpdate()虚函数,该函数的实现如下面的程序清单所示,每次创建一个新视图时,它把父框架窗口移动到所希望的位置。

        void CDrawView::OnInitialUpdate()  
        {  
              //首先调用基类  
              CView::OnInitialUpdate();  
              //1、得到父框架窗口的指针  
              CFrameWnd* pParentFrame=GetParentFrame();  
              ASSERT_VALID(pParentFrame);  
              //2、得到MDI客户区窗口窗口的指针  
              CWnd* pMDIClient=pParentFrame->GetParent();  
              ASSERT_VALID(pMDIClient);  
              //3、计算MDI成员窗口的大小  
              CRect retc;  
              pMDIClient->GetClientRect(&rect);  
              //4、把父框架窗口移动到希望的位置  
              pParentFrame->MoveWindow(rect.Width()/2 , 0 , rect.Width()/2 , rect.Height()/2);  
        }  
    
  • 相关阅读:
    html数据属性 data-*
    切片,索引,基本数据类型
    计算机是什么
    使用CSS3和jQuery可伸缩的搜索条
    一个按钮判断两次事件,切换图标
    Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式
    jq向上无缝滚动
    js避免全局污染
    闭包:让外部函数能访问函数内的变量,让局部变量长期贮存在内存中
    position绝对剧中
  • 原文地址:https://www.cnblogs.com/luoshupeng/p/2220771.html
Copyright © 2011-2022 走看看