设置一个视图的初始位置和大小
2011-10-21 22:30
274 查看
移动或改变视图的大小实际上移动与其关联的父框架窗口。因此,初始化位置的行为既可以在视图的框架窗口类中实现,也可以在视图类中实现,下面提供了2中实现方法。
第一种技术:在视图的框架窗口类中实现该行为
第1步:使用ClassWizard创建一个新的CMDIChildWnd派生类,该类将实现所希望的初始化视图位置的行为。
第2步:使用ClassWizard为CMDIChildWnd派生类增加WM_CREATE消息处理函数,该函数的实现代码如下:
第3步:不要忘记在适当的文档模板中说明视图框架窗口,以得到所希望的行为。
第2中技术:在视图类中实现该行为
在视图类中使用ClassWizard重载OnInitialUpdate()虚函数,该函数的实现如下面的程序清单所示,每次创建一个新视图时,它把父框架窗口移动到所希望的位置。
第一种技术:在视图的框架窗口类中实现该行为
第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); }
相关文章推荐
- QDockWidget设置初始大小的一个解决方案
- mfc基于对话框的应用程序,如何设置初始对话框大小,移动控件位置
- 如何设置应用程序窗口的初始大小和位置
- 如何设置一个窗口的大小、位置和其他参数
- 自定义FragmentDialog视图大小和位置设置
- AutoCAD二次开发之视图操作(3)指定视图大小和中心点来设置视图
- 按钮背景图片 大小 和 位置 设置。
- android动态设置控件的大小和位置
- MFC中设置窗口大小位置
- 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。 给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。
- storyboard中UICollectionViewCell子视图的大小和约束设置有差别的问题
- Android中的一个TextView中的字体设置不同大小
- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法
- 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法
- 获取控件大小和设置调整控件的位置XY示例
- MFC中设置窗口大小位置
- Idea Windows下光标返回上一个位置的设置
- android 获取控件大小和设置调整控件的位置XY
- c# winform 一个可以用鼠标改变控件位置和大小的类,调用即可