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);  
        }  
    
  • 相关阅读:
    SourceInsight中文字体
    Android Studio导入第三方类库的方法
    Unable to create Debug Bridge:Unable to start adb server:error:cannot parse version
    match_parent 、 fill_parent 、 wrap_content
    android:textAppearance
    AndroidManifest配置之uses-sdk
    从Github上下载了项目,导入Android Studio,gradle 报错,应该怎么修改
    Android Studio 使用Gradle多渠道打包
    Android Studio常用快捷键
    在一个form表单中根据不同按钮实现多个action事件
  • 原文地址:https://www.cnblogs.com/luoshupeng/p/2220771.html
Copyright © 2011-2022 走看看